KNX Data Secure Unterstützung
für KNX Logger und KNX Busmonitor

KNX Diagnose Monitor, Import des ETS Projektes deutlich beschleunigt, Suche in der Navigation
Mehr Informationen dazu hier im Forum

Insider Version 6 zur 4.5 jetzt für alle Mitglieder des Insider Clubs installierbar
Alle Infos zum Update im Timberwolf Wiki

[Minor Bug] Explizites Senden eines True bei positiver Flanke (V2.0 Rising Power))

Informationen und Diskussionen über Logik-Engine und Logik-Editor
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln

Ersteller
Robosoc
Reactions:
Beiträge: 1908
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 643 Mal
Danksagung erhalten: 797 Mal

Explizites Senden eines True bei positiver Flanke (V2.0 Rising Power))

#1

Beitrag von Robosoc »

Ich verzweifel gerade...ich will doch nur eine Logik schaffen, die bei einer positiven Flanke auf einem Eingang, ein True auf dem Ausgang sendet, und sonst nichts anderes macht.
Für eine Standardlogik hatte ich keine Idee (highly welcome, wenn ich was übersehe).

Aber ich dachte mit SendExplicit in einer Custom Logic müsste es einfach sein. Aber ich pack es nicht. Hat jemand einen Vorschlag was ich falsch mache. Die Logik tut nicht, was sie soll...zumindest sieht das im Doktormodus so aus.

Jemand einen Tipp?

Code: Alles auswählen

/**
* Explizites Senden eines True bei positiver Flanke
*
* Nutzungsrechte:
* Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License") die unter https://wrgt.news/TOLL zum Download zur Verfügung steht. 
*/

{
  "Level": [
    ["$In","bool",false],
    ["$Out","bool",true],
    ["$VAR<Inhibit?>","bool",false]
  ],
  "Module": [
    ["Break", ["$VAR<Inhibit?>"]],
	["SendExplicit","$In","$Out",1]
  ],  
  "Input": [
    ["In","Binärkontakt, positive Flanke schaltet die Logik","$In","c"]
  ],
  "Output": [
	["Out","","$Out","x"]
  ]
}
Zuletzt geändert von Robosoc am Mo Nov 01, 2021 9:36 pm, insgesamt 3-mal geändert.
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK
Benutzeravatar

Eraser
Reactions:
Beiträge: 677
Registriert: So Aug 12, 2018 1:51 pm
Hat sich bedankt: 218 Mal
Danksagung erhalten: 281 Mal

#2

Beitrag von Eraser »

So etwas gibt es schon und wurde hier im Forum schon gepostet. Das funktioniert mit einem AND mit einem Eingang der auf True liegt. Das Eingangssignal geht auf den Freigabeeingang.
mfg
Wolfgang

Timberwolf 2500 #151 / VPN offen / Reboot nach Rücksprache
+ PBM #938

Ersteller
Robosoc
Reactions:
Beiträge: 1908
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 643 Mal
Danksagung erhalten: 797 Mal

#3

Beitrag von Robosoc »

Lieben Dank und sorry, die Lösung kenne ich, aber ich habe eine feine Kleinigkeit vergessen zu beschreiben.
Ich möchte am Engang einen Zahlenwert (Helligkeit) über einen Schwellwert auswerten. Das heißt ich muss den Eingang auf C einstellen und in der Lösung mit dem AND und Inhibit, muss der Ausgang ja auf A stehen, denn der Ausgang bleibt ja immr True. Somit würde diese Logik bei jeder Änderung der Helligkeit triggern und ein TRUE auf den Ausgang senden, also nicht nur bei einer positiven Flanke.

Ich habe inzwischen noch weiter mit dem Send Explizit gespielt (hatte ich noch nie eingesetzt). Und bei mir funktioniert nicht einmal die Beispiellogik von S.Kolbinger aus diesem Post korrekt:
viewtopic.php?f=24&t=2258

Wenn ich den Ausgang beispielsweise auf eine TimeSeries lege, dann kommt da nie ein Wert an!
Im Doktormodus wird der Ausgang aber immer rot hinterlegt, auch wenn ich da nicht im SendeBereich liege...

Kann den Code mal jemand bei sich ausprobieren? Bin mir immer unsicherer, ob es an mir liegt.

Code: Alles auswählen

{
  "Level": [
    ["$In_val", "float", 0],
    ["$Out_val","float",0],
    ["$Send","bool" ,false],
    ["$Min", "float", 4],
    ["$Max","float",17]
  ],
  "Module": [
    ["Limiter","$In_val","$Out_val","$Send",["$Min","$Max"]],
    ["SendExplicit","$Send","$Out_val",0]
  ],
  "Input": [
    ["Eingang","Eingangswert","$In_val","a"]
  ],
  "Output": [
    ["Ausgang","Ausgangswert","$Out_val","x"]
  ]
}
Zuletzt geändert von Robosoc am Mo Nov 01, 2021 10:03 pm, insgesamt 2-mal geändert.
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK

gbglace
Reactions:
Beiträge: 4089
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1416 Mal
Danksagung erhalten: 1901 Mal

#4

Beitrag von gbglace »

Was hindert einem daran in einer Logik den Schwellwert, kann man ja als Ergebnis ggf noch woanders verwenden, zu ermitteln und auszugeben und nachfolgend ein entsprechend konfiguriertes UND damit zu befüllen?
Grüße Göran
#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#PV 43,2 kWh Akku; 3x VE MP2 5000; 6,7 kWp > 18 Panele an 4x HM1500 + 1 HM800 WR; Open-DTU

Ersteller
Robosoc
Reactions:
Beiträge: 1908
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 643 Mal
Danksagung erhalten: 797 Mal

#5

Beitrag von Robosoc »

Bin auf noch eine Auffälligkeit gestoßen, die mich sehr irritiert hat:

Ich dachte bisher, dass das Zeichen für Eingangs- und Ausgangsverhalten (A, C, T etc.) nicht Case-Sensitive ist und ich habe auch munter mal ein c und mal ein C verwendet. Bei SendExplicit scheint es Case-Sensitive zu sein...im Beschreibungstext steht zwar ein großes X, aber im Beispielscode von S.Kolbinger ist ein kleines x verwendet. Nutze ich ein großes X, dann wird es in der Oberfläche nicht angezeigt:

Bild
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK

Ersteller
Robosoc
Reactions:
Beiträge: 1908
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 643 Mal
Danksagung erhalten: 797 Mal

#6

Beitrag von Robosoc »

gbglace hat geschrieben: Mo Nov 01, 2021 10:07 pm Was hindert einem daran in einer Logik den Schwellwert, kann man ja als Ergebnis ggf noch woanders verwenden, zu ermitteln und auszugeben und nachfolgend ein entsprechend konfiguriertes UND damit zu befüllen?
Aber nur weil ich SendExplicit noch nie eingesetzt habe...ist mein Weg denn falsch?
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK

gbglace
Reactions:
Beiträge: 4089
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1416 Mal
Danksagung erhalten: 1901 Mal

#7

Beitrag von gbglace »

wahrscheinlich nicht, aber das andere wäre erstmal eine funktionierende Lösung.

Der Spieltrieb kann dann ja tiefer gehen und ggf. gibt es ja auch noch was zu reparieren im TWS.
Grüße Göran
#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#PV 43,2 kWh Akku; 3x VE MP2 5000; 6,7 kWp > 18 Panele an 4x HM1500 + 1 HM800 WR; Open-DTU

Ersteller
Robosoc
Reactions:
Beiträge: 1908
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 643 Mal
Danksagung erhalten: 797 Mal

#8

Beitrag von Robosoc »

Probleme und Fehler identifiziert

Der Doktormodus verhält sich bei Einsatz von SendExplicit falsch und irreführend. Hatten Andere vor mir auch schon festgestellt und ich bin wieder drauf reingefallen, sorry.

Leider habe ich beim Versuch es mit einer extra angelegten TimeSeries als Ziel zu testen in Grafana vergessen das field(Value) auf field(Val) zu stellen, daher habe ich kein Ergebnis gesehen. Aber sowohl mein Code in Beitrag #1, als auch der Beispiel-Code von S. Kolbinger, funktionieren wie beschrieben.

Bleibt am Ende der kleine Anzeigefehler bei dem großen "X" und der irreführende Doktormodus.
Zuletzt geändert von Robosoc am Di Nov 02, 2021 8:48 am, insgesamt 2-mal geändert.
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK

gbglace
Reactions:
Beiträge: 4089
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1416 Mal
Danksagung erhalten: 1901 Mal

#9

Beitrag von gbglace »

Na gleich mal den Eintrag in der Liste typische Debugging-Hinweise geschrieben.
Grüße Göran
#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#PV 43,2 kWh Akku; 3x VE MP2 5000; 6,7 kWp > 18 Panele an 4x HM1500 + 1 HM800 WR; Open-DTU

Ersteller
Robosoc
Reactions:
Beiträge: 1908
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 643 Mal
Danksagung erhalten: 797 Mal

#10

Beitrag von Robosoc »

gbglace hat geschrieben: Mo Nov 01, 2021 10:51 pm Na gleich mal den Eintrag in der Liste typische Debugging-Hinweise geschrieben.
Damit meinst Du vermutlich die Diskussion hier viewtopic.php?f=24&t=3028, oder?
Da passt es nicht hin, weil es weder ein Nutzerfehler beim Schreiben vom CustomCode ist, noch dazu führt, dass die Logik in Error geht (gibt ja keinen Fehler und die Logik funktioniert ja auch).

An der Stelle ist es schlicht noch ein Fehlverhalten vom Doktormodus, der bei Zeiten korrigiert werden sollte...aber da es nicht allzuviele Custom-Code-Schreiber gibt und auch von denen noch nicht besonders viele über das SendExplicit-Doktor-Thema gestoßen sind (ich glaube es waren drei oder vier Nutzer bisher), ist es mit Sicherheit nun auch nicht das eiligste Thema.
VG, Sven - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK
Antworten

Zurück zu „Logikengine & Logik-Editor“