Fehler mit Select/Input Widget

Begonnen von Humpelpumpel, 09 April 2020, 00:46:33

Vorheriges Thema - Nächstes Thema

Humpelpumpel

Hallo zusammen, ich habe auf dem FHEM Wiki (https://wiki.fhem.de/wiki/FTUI_Widget_Input) folgendes übernommen:
<div data-type="select" data-items='["dummy1","dummy2","dummy3","dummy4"]' id="sendDev" class="notransmit w3x"></div>
<div data-type="select" data-items='["STATE","warn1","warn2","webCmd","room"]' id="sendParam" class="notransmit w3x"></div>
<div data-type="input"
     data-device="#sendDev"
data-get="#sendParam"
id="sendValue"
data-value="127"
class="notransmit w3x centered"></div>
<div data-type="link" class="round centered" data-icon="fa-feed" data-device="#sendDev" data-set="#sendParam" data-value="#sendValue">OK</div>


Und erhalt nun folgende Fehlermeldung per Toast:
fhem-tablet-ui.js:1185
SyntaxError: An invalid or illegal string was specified


Kann jemand den Fehler nachvollziehen?

Gruß Thomas

amenomade

Erhälst Du das immer, oder nur wenn Du auf OK klickst?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Andy_C

Hi,
ich bin gerade vor einem ähnlichen Problem mit dem Widgets...
versuche es mal mit einem nicht vorhandenen device...
hast du die Eingabe ohne Bestätigng aus dem Wiki versucht?

Gruß, Andy

amenomade

Das Problem kommt vom Widget link, der am Anfang (1. Ladung der Seite) nicht weiss, welches device er laden muss.
Es passiert aber danach nicht mehr, und es schaltet ordentlich
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Andy_C

Hatte ich glatt übersehen, er hat ja noch das Dummy1 als device drin... aber dann sendet er doch normalerweise oder? Zumindest bei mir schickt er dann die Meldung "set dummyX xxx" und es kommt kein Fehler.

amenomade

Nein, das Problem ist bei der longpoll Fuktion von ftui, die (u.a.) mit dem Text #sendDev statt mit dem Wert von #sendDev gerufen wird.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Andy_C

Da würden sich jetzt für mich einige Fragen stellen bezüglich wert oder Text.... da ich denke das wäre evtl.eine Lösung meines Problems.. aber in diesem geht es ja anscheinend um ein anderes Problem und ich bin da nicht mehr wirklich fit.. möchte auch nicht den Thread nutzen um mein Problem zu lösen. Vielleicht kannst du ja auch auf den nächsten Thread (meiner bezüglich Input) mal ein Auge werfen?

Gruß

amenomade

#7
Das Problem könnte man vermutlich mit longpoll_filter umgehen, aber es wird bisschen kompliziert. Ziel ist den Wert "#sendDev" nicht zu pollen

EDIT: Alternativ: man arbeitet nur mit 2 Werte, und lässt beim Link data-device leer:

<div data-type="select" data-items='["dummy1","dummy2","dummy3","dummy4"]' id="sendDev" class="notransmit w3x"></div>
<div data-type="input"
     data-device="#sendDev"
data-get="#sendParam"
id="sendValue"
data-value="127"
class="notransmit w3x centered"></div>
<div data-type="link" class="round centered" data-icon="fa-feed" data-device="" data-set="#sendDev" data-value="#sendValue">OK</div>

Sowas geht ohne Fehlermeldung, und sendet
set dummy1 127
set dummy2 127
(127 oder was auch immer, was im Input steht)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Humpelpumpel

Zitat von: amenomade am 09 April 2020, 21:56:34
Erhälst Du das immer, oder nur wenn Du auf OK klickst?
Den Fehler erhalte ich immer, auch bei jedem Seiten wechsel usw.

An sich bräuchte ich eigentlich "setreading Dummy Reading1 XYZ" "setreading Dummy Reading2 XYZ" usw.
Also ein fixes Devices mit unterschiedlichen Readings die befüllt werden sollen.

amenomade

#9
Dann schau mal hier: https://forum.fhem.de/index.php/topic,110024.msg1040381.html#msg1040381
setreading geht auch für ein dummy mit set, wenn das Attribut readingList gesetzt ist

EDIT: hmm ne, nicht ganz gleich. Das wird so nicht funktionieren. Dann musst Du deine ursprüngliche Lösung benutzen, und die Fehlermeldung mit longpoll_filter unterdrücken.

<meta name="longpoll_filter" value=".*"> wäre schon ein Anfang. Nachteil: somit werden ALLE Events deiner Installation an FTUI geschickt. ALternativ, allen FTUI Devices einen zusätzlichen room zuweisen, und value "room=FTUIroom" im Filter.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Humpelpumpel

Ich probier mal ein bisschen rum, heute hatte ich noch keine Meldung obwohl ich nichts geändert habe...schon seltsam :D

Danke dir. :)