QA Beispiel Bedienfeld

Hier ist mal ein Beispiel wie man ein Bedienfeld erzeugen kann.
Hierfür benötigt man eine Oberfläche mit Tastern und Anzeigefeldern.
Hier ist ein QA das genau das nachbildet.

Beispiel Szene zur bedienung und zur Abfrage.

--declaration
{
  conditions = { {
      isTrigger = true,
      operator = "match",
      property = "cron",
      type = "date",
      value = { "*", "*", "*", "*", "*", "*" }
    }, {
      id = 569,
      isTrigger = true,
      operator = "==",
      property = "value",
      type = "device",
      value = 1
    }, {
      id = 172,
      isTrigger = true,
      operator = "<",
      property = "power",
      type = "device",
      value = 30
    }, {
      id = 501,
      isTrigger = true,
      operator = "==",
      property = "value",
      type = "device",
      value = true
    }, {
      id = 569,
      isTrigger = true,
      operator = "==",
      property = "value",
      type = "device",
      value = 2
    }, {
      id = 569,
      isTrigger = true,
      operator = "==",
      property = "value",
      type = "device",
      value = 3
    } },
  operator = "any"
}

--Aktion
--
print("Start Test")

bedienfeld = 569    --ID des QA Bedienfeld

--Abfrage was hat den Trigger ausgelöst
if (json.encode(sourceTrigger.property) == '"execute"') then
    -- print('Szene manuell ausgeführt - UserID: ' ..json.encode(sourceTrigger.id))
    -- Aktion Manuel nicht vorgesehen !
elseif (json.encode(sourceTrigger.property) == '"cron"') then
    -- print("Szene con Cron getriggert")
elseif fibaro.getValue(bedienfeld,"value")  == 1.0 then
    ----Bedienfeld Ausgabewert 1
elseif fibaro.getValue(bedienfeld,"value")  == 2.0 then
    ----Bedienfeld Ausgabewert 2
elseif fibaro.getValue(bedienfeld,"value")  == 3.0 then
    ----Bedienfeld Störung löschen hat getriggert
end

alarmdaten = "Testausgabe"
--Meldung auf der QA-function "Alarmhinweis_ausgeben" Text "Alarmanlage"
fibaro.call(bedienfeld,"Alarmhinweis_ausgeben","Alarmanlage")
--Hier auf einer anderen QA-function
fibaro.call(bedienfeld,"Alarm_ausgeben",alarmdaten)

Dazu benötigt man ein QA


So wird es dargestellt

Das ist der benötigte Code dafür.

--------------------------------------------------------------------------------------------------
--------------------- Ausgabe von Meldungen in 3 Meldefelder -------------------------------------
--------------------------------------------------------------------------------------------------
-- Aufruf in der Szene mit fibaro.call(ID,"Alarm_ausgeben", "Das ist eine Alarmmeldung")
-- ID = ID der QuickApp, "Name der Function", "Auszugebender Text"

function QuickApp:Rauch_ausgeben(arg1)
    --self:debug("Rauchmeldung_ausgeben", arg1)
    self:updateView("label_1", "text", arg1) -- Rauchmeldung auf dem Platz label_1 anzeigen
end

function QuickApp:Heiz_ausgeben(arg1)
    --self:debug("Heizungsmeldung_ausgeben", arg1)
    self:updateView("label_1", "text", arg1) -- Heizungsmeldung auf dem Platz label_1 anzeigen
end

function QuickApp:System_Meldung_ausgeben(arg1)
    --self:debug("Systemmeldung ausgeben", arg1)
    self:updateView("label_1", "text", arg1) -- Systemsmeldung auf dem Platz label_1 anzeigen
end

function QuickApp:Alarmhinweis_ausgeben(arg1)
    --self:debug("Alarmhinweis_ausgeben", arg1)
    self:updateView("label_2", "text", arg1) -- Alarmhinweismeldung auf dem Platz label_2 anzeigen
end
function QuickApp:Alarm_ausgeben(arg1)
    --self:debug("Alarm_ausgeben", arg1)
    self:updateView("label_3", "text", arg1) -- Alarmmeldung auf dem Platz label_3 anzeigen
end




--------------------------------------------------------------------------------------------------
------------------- Abfrage der Tastenbetätigung und Reaktion darauf -----------------------------
--------------------------------------------------------------------------------------------------
-- Abfrage in der Szene per Trigger und dann der Wert als Tastennummer
--Der Wert der Tastennummer bleibt für 500ms bestehen und geht dann auf 0

function QuickApp:betaetigt_1() --Feuermeldung löschen
    --self:debug("Tase - 1")
    self:updateView("label_1", "text", "Keine Meldung")
    self:updateView("button_1", "text", "betätigt")
    fibaro.sleep(500) --Anzeigezeit für betätigt
    self:updateView("button_1", "text", "Feuermeldung")
    self:updateProperty('value', 1) -- binary switch on
    fibaro.sleep(500)
    self:updateProperty('value', 0) -- binary switch off
end
function QuickApp:betaetigt_2() --Systemmeldung löschen
    --self:debug("Tase - 2")
    self:updateView("label_1", "text", "Keine Meldung")
    self:updateView("button_2", "text", "betätigt")
    fibaro.sleep(500) --Anzeigezeit für betätigt
    self:updateView("button_2", "text", "Systemmeldung")
    self:updateProperty('value', 2) -- binary switch on
    fibaro.sleep(500)
    self:updateProperty('value', 0) -- binary switch off
end
function QuickApp:betaetigt_3() --Heizungsmeldung löschen
    --self:debug("Tase - 3")
    self:updateView("label_1", "text", "Keine Meldung")
    self:updateView("button_3", "text", "betätigt")
    fibaro.sleep(500) --Anzeigezeit für betätigt
    self:updateView("button_3", "text", "Heizungsmeldung")
    self:updateProperty('value', 3) -- binary switch on
    fibaro.sleep(500)
    self:updateProperty('value', 0) -- binary switch off
end
function QuickApp:betaetigt_4() --Alarm scharfschalten
    --self:debug("Tase - 4")
    self:updateView("label_3", "text", "versuch scharfzuschalten")
    self:updateView("button_4", "text", "betätigt")
    fibaro.sleep(500) --Anzeigezeit für betätigt
    self:updateView("button_4", "text", "scharfschalten")
    self:updateProperty('value', 4) -- binary switch on
    fibaro.sleep(500)
    self:updateProperty('value', 0) -- binary switch off
end
function QuickApp:betaetigt_5() --Alarmanlage endschärfen
    --self:debug("Tase - 5")
    self:updateView("label_3", "text", "endschärft")
    self:updateView("button_5", "text", "betätigt")
    fibaro.sleep(500) --Anzeigezeit für betätigt
    self:updateView("button_5", "text", "endschärfen")
    self:updateProperty('value', 5) -- binary switch on
    fibaro.sleep(500)
    self:updateProperty('value', 0) -- binary switch off
end

--------------------------------------------------------------------------------------------------
---------------------------- Initialisierung der Quick-App ---------------------------------------
--------------------------------------------------------------------------------------------------

function QuickApp:onInit() --Aufrufe beim Initialisieren der APP
    self:updateView("label_1", "text", "Keine Meldung") -- Text auf platz label_1 ausgaben
    self:updateView("label_2", "text", "Alarmanlage")-- Text auf platz label_2 ausgaben
    self:updateView("label_3", "text", "Alarmanlage endschärft")-- Text auf platz label_3 ausgaben
end

Damit Ihr das nicht eingeben sondern gleich ausprobieren könnt hier das fertige QA.
Bedienfeld-fqa.txt (8,2 KB)

Da leider kein .fqa hochgeladen werden kann habe ich es umbenannt in .txt.
Einfach im Verzeichnis umbenennen in Bedienfeld.fqa und dann unter Geräten einfügen als Quick AP

Viel Spaas damit
Frank

Moin Frank

mal wieder ein sehr schönes beispiel aus dem ich mir einiges rauskopiert habe.
vielen dank.

Ich wollte mir auch einige Werte in der QA anzeigen lassen. Z.b. die addition von allen drei Verbrauchsströmen also L1 + L2 + L3 usw.
Das könnte ich dann in eine globale Variable schreiben.

Nur wie kann ich diese dann anzeigen lassen ? (Hab mir schon die Finger berochen)
irgentwie mit self.update…

Dann natürlich noch mit der richtigen Einheit

vielleicht hast du ja eine Idee

viele Grüße

Christoph

Hallo Christoph

Ich mache mitlerweile nichts mehr mit dem HC3.
Nach viel Ärger mit dem Teil bin ich zum ioBroker gewechselt.
Da hat man Möglichkeiten über Möglichkeiten, unüberschaubar.
Das aber nur am Rande.
Zu deinem Schreiben, ich mache das mal aus der Erinnerung, erst ein Ausgabefeld anlegen, Diesem Feld einen Nahmen geben.
Dann kannst du erst einen Wert in dem Feld ausgeben.
Ich hoffe das wahr der Schritt der dir fehlte.
Ich konnte dir erst jetzt antworten weil ich nur noch selten hier mitlese und das Forum länger nicht erreichbar war.

Grüße aus dem Sauerland und einen Guten Rutsch mit viel Gesundheit.
Frank