Javascript Problem - Wert wird nicht neu ausgelesen

Begonnen von darkon, 02 Januar 2018, 14:30:33

Vorheriges Thema - Nächstes Thema

darkon

Hallo zusammen,

habe folgendes Problem. Ich bastel mir gerade selber einen Switch-Button. Dabei wird zuerst der Wert meines dummys eingelesen und anschließend auf aus oder an gesetzt. Also ein einfacher Wechsel des Zustandes. Dieses funktioniert auch soweit. Leider wird das einlesen


var status_ftui = ftui.getDeviceParameter(objID,'state').val;


nur einmalig ausgeführt. Wie muss ich den Code ändern das bei jedem Klick der Status neu eingelesen wird?


function getStatus (objID){
     var status_ftui = ftui.getDeviceParameter(objID,'state').val;
     return status_ftui;
}

function setStatus (objID) {
     var status_ftui = getStatus(objID);
     if(status_ftui == "an") {
          ftui.setFhemStatus('set SUN_SZ_Rollo_Fenster_Hoch_Status aus');
     }
     else {
  ftui.setFhemStatus('set SUN_SZ_Rollo_Fenster_Hoch_Status an');
     }
}

viegener

Vielleicht vermisse ich nur mehr Infos aus dem Text kann ich jedenfalls nur begrenzt helfen:

Wenn Du getStatus  bei jedem Click aufrufen willst, musst Du es ja wohl an den Click-Event binden in Deinem Button binden

Generell ist mir aber nicht klar, was Du eigentlich machen willst? Einen Button, der auf einen Click ein Kommando in FHEM auslöst und sich dann aktualisiert ist irgendwie doch schon Teil des TabletUI?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

darkon

#2
Sorry für meine sperrlichen Auskünfte. Am liebsten würde ich einfach einen Switch aus dem Tablet UI verwenden, welcher den Status von "SUN_SZ_Rollo_Fenster_Hoch_Status" wechselt und anzeigt. Dieser dummy sorgt dafür, ob ich meine Rollos per Helligkeit oder durch eine definierte Uhrzeit schalte.

Um das ganze optisch hübscher zu gestalten sollen meine data-types "datetimepicker" und "slider" jeweils nur angezeigt werden, wenn sie benötigt werden. Also das "datetimepicker" wenn es uhrzeitgesteuert und "slider" wenn es helligkeitsgesteuert ist. Das hatte ich bis vor ein paar Updates des famultibutton auch per zusätzlichem onclick und einer passenden Javascript-Funktion gelöst. Leider wird vom famultibutton aber kein click oder touch Event mehr gehandelt. Am PC läuft alles einwandfrei, jedoch nicht auf meinen Tablets oder Mobiltelefonen.

Daher versuche ich mir gerade einen eigenen Switch zu bauen, wo ich aber stark an meine Grenzen im Bereich der Programmierung komme.

setstate

Setze die beiden optionalen Controls doch in ein eigenes DIV, was durch einen classchanger-Widget versteckt/gezeigt wird. Das macht man dann vom Status des dummys abhängig.

darkon

Vielen Dank. Das Widget hatte ich noch nicht auf dem Schirm. Funktioniert auf anhieb.