Ich bin weder in Symcon noch in KNX so der Experte, sondern fummel mich da immer so durch. Jetzt bin ich da so auf etwas gestoßen, was ich nicht verstehe. Es geht um die Steuerung der MDT-Rollladenaktoren mit dem Datentyp 1.024 Tag/Nacht.
KNX möchte gerne den Wert 0 für Tag haben und den Wert 1 für Nacht.
@DerStandart Danke Dir! Ich habe gehofft, dass Du antwortest.
@Nall-chan Symcon sendet es falsch herum. Deshalb bin ich ja darauf gestoßen. Außerdem ist ja auch die logische Darstellung 1= true=blau; 0 =false=grau so wie Symcon das sendet.
Wenn du das kontrolliert hast, dann wird das schon stimmen.
Ich wollte darauf hinweisen dass die Anzeige und Darstellung eines Wertes in Symcon nicht zwangsläufig auch dem Wert der Hardware entspricht.
Zumal du die Tag/Nacht Anzeige der Variable in Symcon ja einfach anpassen kannst, indem du das Profil bzw. die Darstellung anpasst.
Da sollte die Aussage mit dem was die Instanz tut schon übereinstimmen. Das auf dem Bild ist zeitgleich aufgenommen.
Warum muss dann bei einem offensichtlichem Fehler jeder der das nutzt ein eigenes Profil anlegen? Was passiert, wenn Symcon sich dann doch irgendwann mal entschließt den Fehler zu beseitigen?
Zustand (Nacht) und Anzeige (Aus) stimmt überein und ist richtig.
packe das in ein Script:
//Bitte GAs anpassen und Ereignis erstellen, welches im gewünschten Intervall das Skript startet
$GA_Datum = "0/0/1";
$GA_Zeit = "0/0/2";
$GA_TagNacht = "0/0/3";
$TagNacht = GetValue(27973); // ist die ID "Ist es Tag von Location Control"
EIB_Date($dateID, date("Ymd"));
EIB_Time($timeID, date("His"));
KNX_WriteDPT1(24607, $TagNacht); // ist die ID "KNX DPT 1"
Zustand (Nacht) und Anzeige (Aus) stimmt überein und ist richtig.
packe das in ein Script:
//Bitte GAs anpassen und Ereignis erstellen, welches im gewünschten Intervall das Skript startet
$GA_Datum = "0/0/1";
$GA_Zeit = "0/0/2";
$GA_TagNacht = "0/0/3";
$TagNacht = GetValue(27973); // ist die ID "Ist es Tag von Location Control"
EIB_Date($dateID, date("Ymd"));
EIB_Time($timeID, date("His"));
KNX_WriteDPT1(24607, $TagNacht); // ist die ID "KNX DPT 1"
Was total egal ist.
GetValue nimmt den Wert. Also true oder false.
Bei Nacht ist das ein false.
Jetzt schreibst du das false in eine KNX Instanz… Also sendest du eine 0…
Nochmal, dein Skript ist falsch. Du musst den Wert invertieren.
//Bitte GAs anpassen und Ereignis erstellen, welches im gewünschten Intervall das Skript startet
$GA_Datum = "0/0/1";
$GA_Zeit = "0/0/2";
$GA_TagNacht = "0/0/3";
$TagNacht = GetValue(27973); // ist die ID "Ist es Tag von Location Control"
EIB_Date($dateID, date("Ymd"));
EIB_Time($timeID, date("His"));
KNX_WriteDPT1(24607, !$TagNacht); // ist die ID "KNX DPT 1"
Es muss !$TagNacht heißen, da unser Location Control Tag = 1 hat und KNX Tag = 0 hat. Die Darstellung ist da gerade unerheblich
Das Profil in Symcon ist falsch und muss getauscht werden, um den KNX Wert richtig anzuzeigen. Darum kümmert sich paresy
Unabhängig vom Profil ist auch der Boolean zwischen IPS und KNX genau andersherum definiert. Das ist auch unabhängig von der Profildarstellung, deshalb musst du das in deinem Scrip invertieren.
Die Konfiguration einer Instanz in der Konsole aktualisiert das Profil nicht in Echtzeit, dass machen nur die Frontends.
Du musst also den Tab schließen und neu öffnen.
Außerdem wäre mal die Frage, welche Symcon Version du überhaupt nutzt?