Änderung einer Globalen Variable startet Szene nicht

Ich werde hier bald verrückt.

Leider kriege ich es nicht hin eine Scene mit einer Änderung einer globalen Variable zu starten.
Also bei Änderung einer Globalen Variable soll automatisch die Scene ausgeführt werden.
Laut Beschreibung soll es ganz einfach sein wie z.B. hier http://www.fibarouk.co.uk/support/lua/library/fibarogetsourcetrigger/ oder hier https://www.siio.de/fibaro-homecenter-guide-teil-3-trigger-auswerten/ beschrieben.

--[[
%% properties
 
%% globals
isItDarkOutside
–]]
 
local trigger = fibaro:getSourceTrigger()
 
if (trigger['type'] == 'property') then
  fibaro:debug('Source device = ' .. trigger['deviceID'])
elseif (trigger['type'] == 'global') then
  fibaro:debug('Global variable source = ' .. trigger['name'])
elseif (trigger['type'] == 'other') then
  fibaro:debug('Other source.')
end

Jetzt habe ich gelesen, dass die Änderung der Globalen Variable über eine Scene geschehen soll.
Also nicht direkt im Panel und wahrscheinlich auch nicht per PUT Befehlt.
OK, habe ich nun auch geändert, aber trotzdem rührt sich nichts.

Ich finde leider in keinem Artikel ob die Scene mit %%autostart versehen muss.
Oder ob die Scene in Fibaro selbst als Manual oder Automatic definiert werden muss.

Vielleicht weiß hier jemand Rat :slight_smile:

Vielen Dank

In deinem Skript sieht man leider KEINE Variablen Aktionen!?
Hier einige Tipps:

Um die globale Variable in eine lokale Variable einzulesen:
local lokaleVariable = fibaro:getGlobal("isItDarkOutside")

setzen:
fibaro:setGlobal("isItDarkOutside","wert")

Hmmm… Wieso soll dies eine Änderung bringen?
Wenn diese Scene nicht ausgeführt wird, dann würde doch ein Auslesen gar nichts bringen.
Habe ich gerade geändert, bringt aber keinen Unterschied. Diese Scene wird nicht ausgeführt, wenn die Globale Variable durch eine andere Scene verändert wird.

Der oben gezeigte Code ist auf ein Minimum Reduziert, damit das Problem klar wird.
Ich wollte jetzt nicht haufenweise Zeilen rein kopieren und es geht nur um die ersten 10. Vielleicht deshalb verwirrend.

Dein Code enthält nur den Trigger, daran kann man nicht ersehen, was du bezweckst …
Poste mal das ganze Skript, vielleicht wird es dann klarer :wink:

Das es sich hierbei um keine Autostart-Szene handelt, sollte dir beim Lesen der Guide-Reihe ja bewusst geworden sein ?

Nimm mal einen Standard-Header und nicht so einen kaputt gerodeten. Möglicherweise liegt das schon daran. Ansonsten bräuchten wir die Szene, welche die Variable ändert.

Edit: Grad nochmal geschaut. Dein Header ist wirklich kaputt, falsche Zeichen, so wird nichts getriggert.

Gruß

Vielen Dank für die Rückmeldungen.
@Boomx: Es hat mir sehr geholfen, dass Du meintest , dass mein Header kaputt war.
Habe den Code 1zu1 von Fibaro UK kopiert nachdem meiner nicht funktionierte.
Ich dachte halt, dass dies die Erläuterung erleichtern würde. Nunja… konnte ja nicht Ahnen, dass die in Ihrem eigenen Code Fehler besitzen.
http://www.fibarouk.co.uk/support/lua/library/fibarogetsourcetrigger/

Auch habe ich raus bekommen, dass es nur funktioniert, wenn ich die Scene als Autostart definiere.
Und ich meine nicht %% autostart. Ich meine in der GUI von der Scene im HC2.

Leider ist es genauso wie erwartet, dass Änderungen der Globalen Variable ohne Verwendung einer Scene beim Auslösen ignoriert werden.
Damit löst sich mein Denkansatz wohl in Luft auf. Denn jetzt brauche ich wieder viele Scenen in der HC, damit diese GV ändern.

Danke nochmal.

Ja, da ist der Fehler. Passiert. :frowning:

Aber was du mit der Autostart-Option sagen willst, ist mir nicht klar. Es läuft auf das selbe hinaus, ob du einer Blockszene die GUI-Option aktivierst oder in einer LUA-Szene die Option mit %%. Ist exakt das selbe.

https://www.siio.de/szenen-im-fibaro-homecenter-einsteigerguide-teil-1/

Gruß

Hast du das ausprobiert:

https://forum.fibaro.com/index.php?/topic/22624-updating-globalvar-via-api-doesnt-trigger-scenes/

Aber was du mit der Autostart-Option sagen willst, ist mir nicht klar. Es läuft auf das selbe hinaus, ob du einer Blockszene die GUI-Option aktivierst oder in einer LUA-Szene die Option mit %%. Ist exakt das selbe.

Du hast Oben geschrieben: „Das es sich hierbei um keine Autostart-Szene handelt, sollte dir beim Lesen der Guide-Reihe ja bewusst geworden sein ?“
Und dies ist so bei mir nicht richtig. Wenn ich die oben angezeigte Scene zum Laufen bekommen möchte, dann muss ##autostart definiert sein.

Interessanterweise wird diese Scene auch auf der Fibaro Seite ohne Autostart angegeben. Keine Ahnung wieso.

@Hoogle: Vielen Dank für Deinen Link. Ich habe so viel im Internet nach diesem Thema Gesucht aber dieser Beitrag kam niemals vor. Ich habe allerdings bereits komplett auf ein Virtuelles Device umgestellt. Das Experimentieren musste ein Ende finden :slight_smile: Einfach per HTTP Request einen Button drücken und die Scenen, welche die Globalen Variablen überwachen werden automatisch ausgelöst. Hätte ich den Link vorher gehabt, wäre dies mein Lösungsweg geworden.

@boomx: Vielleicht lohnt es sich aus Deinem Forum Eintrag (den Ich auch erst vorgestern gefunden habe) API-Calls - Fibaro (HC2) LUA Scripts - siio – Community einen richtig Beitrag zu machen und dort neue Erkenntnisse mit einfließen zu lassen. Gerade IFTTT würde sicher viele Interessieren mit Google Assistents oder anderen Triggern, wenn es hierfür einen umfangreicheren Beitrag geben würde.

Autostart ist hier nicht notwendig. Es muss ohne laufen, sonst bekommst du Probleme mit den Instanzen. Wenn es ohne nicht läuft, dann stimmt bei deiner Konfiguration, bzw. in deinem Code etwas nicht.

Siehe Zitat aus dem geposteten Artikel:

Grundsätzlich kann man sagen, dass die Autostart-Option nur aktiviert werden muss, wenn diese zeitgesteuert ausgeführt wird. In allen anderen Fällen muss diese Option deaktiviert, beziehungsweise das „%% autostart“ aus dem Header entfernt werden, da die Szene ansonsten bereits eine laufende Instanz besitzt.

Genau deshalb wird dies auch so vei Fibaro dargestellt ?

Zu ifttt gibt es bereits einen Beitrag. Ich persönlich bin kein Fan davon, da man durch die Port-Weiterleitung Angriffsfläche für Externe öffnet.