LOGIKPLAN (Wiedermal)

Kann mir bitte Jemand erklären wieso die Instanz nicht geändert wird?

Vielen Dank

Ich würde die Variable als Ziel nehmen nicht die Instanz…

Macht das einen Unterschied? Werds probieren. Ich möchte nämlich die Störung auf den KNX Bus senden.

Aber normal ist das doch nicht?
Ich vermute ich habe viele Logikpläne, die nicht richtig funktionieren.
Das ärgert mich sehr :frowning:

UPDATE:
Geht aich mit der Variablen nicht

@Dr.Niels @paresy
Könntet Ihr da bitte was sagen?

Hast du mal versucht, einfach eine neu erstellte Test-Variable als Ziel zu wählen? Ich habe die Situation mit den zwei ‘Oder’ Logiken nachgebaut, das funktioniert einwandfrei. Und bei dir scheint es auch bis zur Variable gesandt zu werden, aber die Variable reagiert nicht.

1 „Gefällt mir“

ja werd ich gleich machen. Danke
ich habe ja mit dem LOGIKPLAN noch mehr Probleme, die unbeantwortet blieben. Hier und Hier

Mit einer neuen Variable gehts.


Auch mit einer NEU angelegten KNX Instanz:

Ich denke das sollte dann ein Fehler im Logikplan sein, oder?

Die alte (im Logikplan nicht funktionierende) Instanz:

Die gerade zu testzwecken angelegte Instanz:

Wieso sind die zwei KNX DPT 1 Instanzen unterschiedlich in der Optik?

Bist du denn sicher, dass es am Logikplan liegt? Kannst du mal versuchen die Variable einfach in der Visu zu schalten und schauen ob das klappt? Vielleicht funktioniert ja einfach die Variablenaktion nicht…

Ja mach ich gleich, aber kann das sein? Die KNX Instanz ist schon ein paar Jährchen alt.
Es kommt leider öfter vor, dass die GIRA KNX RWM Gateways abrauchen. Hat also sicher schon mal funktioniert. Zumindestens vor dem Logikplan (noch mit dem Ablaufplan)

Die Frage ist aber auch noch wieso bei der neuen Instanz unten die Switch (Value) dargestellt wird und bei der anderen nicht?

Variablenprofil alte Instanz (bewusst ohne Actionscript - soll nur den Zustand darstellen)

UPDATE @Dr.Niels :
Es läuft auch bei der neu angelegten Instanz NICHT wenn sie (die Variable) kein aktives Actionscript hat!
Jetzt ist die Frage ob das so gewollt ist oder nicht?

Wie gesagt möchte ich die dazugehörige Variable ohne SCHALTER haben. Ich möchte nur eine Störung anzeigen…

glg

Okay, die Variable hat also gar keine Aktion. Dann sieht das ein kleines bisschen anders aus. Eine KNX-Variable kannst du tatsächlich nicht anpassen, die wird eine Aktualisierung per Logikplan oder Skript ablehnen, da sie schreibgeschützt ist. Die KNX Instanz kümmert sich ja darum. Das gilt aber nicht für deine Testvariable. Diese ist ja nicht an eine Instanz gebunden. Ich kann mir vorstellen, dass beim Schalten einer Instanz nur schaltbare Variablen angeboten werden. Aber kein Problem, eine Variable ohne Aktion kannst du per „Variable schreiben“ reinziehen. Dort kannst du wählen, ob die Aktion ausgeführt wird oder die Variable einfach nur gesetzt wird.

1 „Gefällt mir“

Ich denke, du meinst das:

Es funktioniert aber leider so nicht:

Oder verstehe ich wiedermal etwas falsch?

Ja, das meinte ich. Kannst du sonst mal ein PHP-Skript mit dem Inhalt

<?php

var_dump(IPS_GetObject(46840));
var_dump(IPS_GetVariable(46840));

ausführen und hier den Inhalt posten? Dann habe ich nochmal mehr Kontext, ob das am Schreibschutz liegen könnte.

Gerne

array(15) {
  ["ParentID"]=>
  int(23924)
  ["ObjectID"]=>
  int(46840)
  ["ObjectType"]=>
  int(2)
  ["ObjectIdent"]=>
  string(5) "Value"
  ["ObjectName"]=>
  string(20) "Feuermelder Störung"
  ["ObjectInfo"]=>
  string(0) ""
  ["ObjectIcon"]=>
  string(0) ""
  ["ObjectSummary"]=>
  string(0) ""
  ["ObjectPosition"]=>
  int(1)
  ["ObjectIsReadOnly"]=>
  bool(true)
  ["ObjectIsHidden"]=>
  bool(false)
  ["ObjectIsDisabled"]=>
  bool(false)
  ["ObjectIsLocked"]=>
  bool(false)
  ["HasChildren"]=>
  bool(false)
  ["ChildrenIDs"]=>
  array(0) {
  }
}
array(12) {
  ["VariableID"]=>
  int(46840)
  ["VariableProfile"]=>
  string(10) "~Alarm.KNX"
  ["VariableAction"]=>
  int(23924)
  ["VariableCustomProfile"]=>
  string(0) ""
  ["VariableCustomAction"]=>
  int(1)
  ["VariableUpdated"]=>
  int(1776148677)
  ["VariableChanged"]=>
  int(1776148677)
  ["VariablePresentation"]=>
  array(2) {
    ["PROFILE"]=>
    string(10) "~Alarm.KNX"
    ["PRESENTATION"]=>
    string(38) "{4153A8D4-5C33-C65F-C1F3-7B61AAF99B1C}"
  }
  ["VariableCustomPresentation"]=>
  array(4) {
    ["PRESENTATION"]=>
    string(38) "{3319437D-7CDE-699D-750A-3C6A3841FA75}"
    ["OPTIONS"]=>
    string(285) "[{"ColorDisplay":7902880,"Value":false,"Caption":" ","IconValue":"","IconActive":false,"ColorActive":true,"ColorValue":7902880,"Color":-1},{"ColorDisplay":16762930,"Value":true,"Caption":"Störung","IconValue":"","IconActive":false,"ColorActive":true,"ColorValue":16762930,"Color":-1}]"
    ["ICON"]=>
    string(0) ""
    ["COLOR"]=>
    int(-1)
  }
  ["VariableType"]=>
  int(0)
  ["VariableValue"]=>
  bool(true)
  ["VariableIsLocked"]=>
  bool(false)
}

Hast du der Variable ein eigenes Aktionsscript gegeben? Wie sieht das aus?

Nein, eben nicht. Ich möchte die Variable nur anzeigen lassen. siehe hier

Es fällt mir dann nur der Weg über eine „geklonte“ Hilfsvariable ein. Aber das kann es doch nicht sein oder?

Ich hoffe @Dr.Niels kann das mit dem Logikplan und dem Häkchen beim Actionscript lösen…

lg

Ah, da bin ich beim gucken in der Zeile verrutscht.

Du hast aber „Benutze Standardaktion“ aus und kein eigenes Aktionsskript. Da kann beim Schreiben der Variable auch nichts passieren.
Mit SetValue im Skript sollte es gehen? Keine Ahnung wie die Funktion im Logikplan heißt…

Nein, SetValue geht hier auch nicht. Die Variable ist nämlich wie schon angedeutet schreibgeschützt. Damit kann nur die dazugehörige Instanz den Wert anpassen.

… was schlägst du vor Niels?

glg

Kann die Instanz denn den Wert ändern wenn „Benutze Standardaktion“ deaktiviert ist?

Die eigentliche Frage ist nach meinem Verständnis, wie man in der Visu die readonly-Darstellung bekommt, aber der Logikplan darf den Wert setzen.

1 „Gefällt mir“

Wenn das Gerät prinzipiell schaltbar ist, dann kann man das sonst per

IPS_RequestAction($InstanzID, $IdentDerVariablen, $Wert);

schalten. Das löst das RequestAction auf Instanzebene aus und umgeht somit die deaktivierte Aktionsskript. Aber ob und wie das in einem Logikplan geht, kann ich euch nicht sagen :frowning: