Seite 2 von 3

Re: Zeitfenster V1.1 (13.08.2020)

Verfasst: Do Aug 13, 2020 9:54 pm
von Robosoc
Okay, den Errorgrund habe ich gefunden. Es lag an den Inputs mit dem ? Am Ende. Das kenne ich nur von Variablen Multieingängen.... nutzt Du eine Insider Preview Version, wo es das eventuell bereits gibt?

Ich arbeite in V1.6 RC3.

Speichern ohne Error ging nach dem löschen der zwei Sekunden Inputs. Jetzt teste ich.

Re: Zeitfenster V1.1 (13.08.2020)

Verfasst: Do Aug 13, 2020 10:05 pm
von Robosoc
Also erster Test lief sehr gut. An um 21.57 auf die Sekunde genau und Aus um exakt 21.58.
secondsTillNext hat anschließend einen plausiblen Wert.

Die Logik scheint mir echt Top!

Re: Zeitfenster V1.1 (13.08.2020)

Verfasst: Do Aug 13, 2020 10:09 pm
von Robosoc
Ich denke was noch fehlt ist ein zyklischer Sendetakt...den baue ich gleich mal dazu. Und dann würde ich den Ausgang mit Parameter t statt c wählen.

Re: Zeitfenster V1.1 (13.08.2020)

Verfasst: Do Aug 13, 2020 10:48 pm
von Robosoc
Hier mein Vorschlag zur v1.2

Code: Alles auswählen


/**
 * Zeitfenster
 * Der Logikbaustein sendet TRUE, wenn die aktelle Uhrzeit zwischen den beiden angegebenen Zeiten liegt.
 * Davor und danach wird FALSE gesendet.
 * Über Zyklus [s] kann gesteuert werden, wie oft die Prüfung stattfindet und der Ausgangswert ggfs.
 * aktualisiert wird.
 * 
 * Nutzungsrechts: 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."
 * 
 * Erstellt am 12.08.2020 von Markus Großmann
 * 
 * ChangeLog:
 * V1.2 (13.08.2020): optionaler zyklischer Sendetakt, output parameter t statt c (edit Robosoc)
 * V1.1 (13.08.2020): Ausgang wird nun sekundengenau geschaltet
 * V1.0 (13.08.2020): Initial Release
 */

{
  "_Meta": { // Optional
    "Description": "Zeitfenster",
    "Version": "1.2",
    "Icon": "" // format: "data:image/svg+xml;base64,ENCODED_FILE"
  },
  "Input": [
      ["Stunde von","Stunde von", "$h_from", "c"],
      ["Minute von","Minute von", "$m_from", "c"],
      //["Sekunde von","Sekunde von", "$s_from", "c"],
      ["Stunde bis","Stunde bis", "$h_to", "c"],
      ["Minute bis","Minute bis", "$m_to", "c"],
      //["Sekunde bis","Sekunde bis", "$s_to", "c"],
      ["Zyklischer Sendeinterval", "optionaler Sendetakt in Sekunden, 0 = deaktiv Ausgang wird nur bei Änderung gesendet, bei Wert > 0 wird der Ausgang zyklisch entrechend gesendet","$interval","c"]
  ],
  "Output": [
      ["Zeitfenster aktiv","Aktuelle Zeit ist im Zeitfenster", "$CurrIsInInterval", "t"]
  ],
  "Level": [
      ["$ltime","integer", 0],
      ["$h_from","integer", 0],
      ["$m_from","integer", 0],
      ["$s_from","integer", 0],
      ["$h_to","integer", 0],
      ["$m_to","integer", 0],
      ["$s_to","integer", 0],
      ["$h_curr","integer", 0],
      ["$m_curr","integer", 0],
      ["$s_curr","integer", 0],
      ["$TimeFrom","integer",0],
      ["$TimeTo","integer",0],
      ["$TimeCurrent","integer",0],
      ["$CurrIsAfterFrom","bool", false],
      ["$CurrIsAfterTo","bool", false],
      ["$CurrIsInInterval","bool", false],
      ["$Const1","integer",1],
      ["$Const60","integer",60],
      ["$Const86400", "integer", 86400],
      ["$Period","integer",60],
      ["$ConstTRUE","bool", true],
      ["$SecondsTillFrom","integer",0],
      ["$SecondsTillTo","integer",0],
      ["$SecondsTillNext","integer",1],
      ["$SecondsTillFrom_GT_Zero", "bool", false],
      ["$SecondsTillTo_GT_Zero", "bool", false],
      ["$From_GT_To", "bool", false],
      ["$interval", "integer", 0]
  ],
  "Module": [
      // Aktuelle Uhrzeit
      ["Localtime",0,"$ltime","$s_curr","$m_curr","$h_curr",0,0,0,0,0,0],
      ["Polynomial", "$Const60", "$TimeCurrent", ["$s_curr","$m_curr","$h_curr"]],
      // Zeit Von in Sekunden
      ["Polynomial", "$Const60", "$TimeFrom", ["$s_from","$m_from","$h_from"]],
      // Zeit Bis in Sekunden
      ["Polynomial", "$Const60", "$TimeTo", ["$s_to","$m_to","$h_to"]],
      // Wie lange noch bis Zeit von?
      ["Polynomial", "$Const1", "$SecondsTillFrom", ["$TimeFrom", "-$TimeCurrent"]],
      ["Comparator", "$Const1", "$SecondsTillFrom_GT_Zero", "$SecondsTillFrom"],
      ["Polynomial", "$SecondsTillFrom_GT_Zero", "$SecondsTillFrom", ["$SecondsTillFrom", "$Const86400"]],
      // Wie lange noch bis Zeit bis?
      ["Polynomial", "$Const1", "$SecondsTillTo", ["$TimeTo", "-$TimeCurrent"]],
      ["Comparator", "$Const1", "$SecondsTillTo_GT_Zero", "$SecondsTillTo"],
      ["Polynomial", "$SecondsTillTo_GT_Zero", "$SecondsTillTo", ["$SecondsTillTo", "$Const86400"]],
      // Was ist früher?
      ["Comparator", "$SecondsTillFrom" , "$From_GT_To" , "$SecondsTillTo" ],
      ["Multiplexer", ["$SecondsTillFrom", "$SecondsTillTo"],"$SecondsTillNext", "$From_GT_To"],
      // Timer setzen
      ["Clocksignal","$ConstTRUE",0,"$SecondsTillNext"],
      // zyklischer Sendetimer
      ["Clocksignal","$ConstTRUE",0,"$interval"],
      // Ergebniswert berechnen
      ["Comparator", "$TimeFrom" , "$CurrIsAfterFrom" , "$TimeCurrent" ],
      ["Comparator", "$TimeTo" , "$CurrIsAfterTo" , "$TimeCurrent" ],
      ["And", ["-$CurrIsAfterFrom", "$CurrIsAfterTo"], "$CurrIsInInterval"]
  ]
}


Re: Zeitfenster V1.1 (13.08.2020)

Verfasst: Fr Aug 14, 2020 8:38 am
von Ide71
Robosoc hat geschrieben: Do Aug 13, 2020 9:54 pm Okay, den Errorgrund habe ich gefunden. Es lag an den Inputs mit dem ? Am Ende. Das kenne ich nur von Variablen Multieingängen.... nutzt Du eine Insider Preview Version, wo es das eventuell bereits gibt?

Ich arbeite in V1.6 RC3.

Speichern ohne Error ging nach dem löschen der zwei Sekunden Inputs. Jetzt teste ich.
Ah, sorry, das hatte ich in einer anderen Logik gesehen und vermutet, dass ich damit einen Eingang erstmal ausblenden kann und der manuell über das "+"-Symbol hinzufügen konnte. Ich hatte erst den Eindruck, dass das funktioniert, später habe ich bei mir bemerkt, dass es doch nicht geht. Ich habe manchmal den Eindruck, dass der Logik-Editor komische Sachen macht. :-P

Ich habe bei mir die Fragezeichen rausgemacht und vergessen, die im ersten Post auch rauszumachen. Mache ich gleich...


Edit: Ich merke gerade, dass ich den ersten Post garnicht mehr editieren kann....!? Ist das hier so?

Danke und Gruß
Markus

Re: Zeitfenster V1.1 (13.08.2020)

Verfasst: Fr Aug 14, 2020 8:52 am
von Sun1453
@Ide71

Hallo Markus,
Ja leider ist das beim Forum so das man nach einer bestimmten Zeit das nicht mehr kann. Das kann dann nur ein Moderator anpassen wie @Robert_Mini oder @gbglace . Am besten könnte das einer der beiden machen.

Hmm noch ein Markus. Gibt scheints einige hier im Forum ;)

Re: Zeitfenster V1.1 (13.08.2020)

Verfasst: Fr Aug 14, 2020 10:29 am
von StefanW
Sun1453 hat geschrieben: Fr Aug 14, 2020 8:52 amJa leider ist das beim Forum so das man nach einer bestimmten Zeit das nicht mehr kann.
Es ist eine Grundeinstellung in so ziemlich jedem Forum dass ich kenne, das spätere Änderungen an den Einträgen nicht mehr möglich sind. Wir hatten mal eine Spezialkonfig für spezielle Unterforen gemacht, damit der TE seinen ersten Eintrag beliebig editieren kann für solche Zwecke wie eine "wachsende Logik".

Ich kann bei Gelegenheit mal sehen, ob man das hier auch einrichten kann

lg

Stefan

Re: Zeitfenster V1.1 (13.08.2020)

Verfasst: Fr Aug 14, 2020 10:42 am
von Sun1453
StefanW hat geschrieben: Fr Aug 14, 2020 10:29 am Wir hatten mal eine Spezialkonfig für spezielle Unterforen gemacht, damit der TE seinen ersten Eintrag beliebig editieren kann für solche Zwecke wie eine "wachsende Logik".
Genau das sehe ich als richtig für wachsende Logiken. Hier in diesem Unterforum wäre das sinnvoll.

Re: Zeitfenster V1.1 (13.08.2020)

Verfasst: Fr Aug 14, 2020 11:01 am
von Robert_Mini
Hab die 2? bei den Inputs rausgelöscht.

Lg
Robert

Re: Zeitfenster V1.1 (13.08.2020)

Verfasst: Fr Aug 14, 2020 9:33 pm
von Ide71
Robosoc hat geschrieben: Do Aug 13, 2020 10:48 pm Hier mein Vorschlag zur v1.2
Ich hab es getestet und für gut befunden. Danke. Ich hatte das in der Version 1.0 im Prinzip ja auch drin, und dachte, dass man drauf verzichten könnte. Aber so kann es ja jeder nutzen, wie er es möchte. Von mir aus kann das von einem Mod so als Version 1.2 im ersten Post aktualisiert werden.

Gruß
Markus