Neues Video veröffentlicht



Wir haben ein tolles Video für Euch. Darin zeigen wir Dir Schritt für Schritt die Einrichtung einer täglichen automatischen Datensicherung. Wenn Du das parallel mitklickst, bist Du in 15 Minuten fertig.


In diesem Video zeigen wir das am Beispiel einer Synology, aber diese automatische Sicherung funktioniert mit jedem anderen FTP Server. Dafür einfach nur die URL anpassen, die man dem Logik-Modul als Parameter mitgibt. Wer keinen eigenen FTP-Server hat, kann diesen auch mieten. Preistipp mit täglicher Kündigung ist HETZNER (1 TB für 3,81 EUR/Monat). Letzteres hat auch den Vorteil, dass die Datensicherung "außer Haus" ist.

Im Video zeigen wir auch die Einrichtung einer Logik "Schritt für Schritt" mit Dr. Modus. Damit ist das Video auch für diejenigen interessant, die mit dem Logikmanager noch wenig erfahren sind.

Links:
Video: https://www.youtube.com/watch?v=S-30UqV3BZA
Umfangreicher Forenbeitrag: viewtopic.php?t=5953
Wiki zur Sicherung mit FTP: https://elabnet.atlassian.net/wiki/x/LgCOwg
Preistipp Hetzner Storage Box: https://elabnet.atlassian.net/wiki/x/AQAuww

AKTION: Wir haben noch 150 weitere Videos (und 800 Wiki Seiten) geplant. Bitte unterstütze uns mit einem Software-Wartungsvertrag, damit wir dieses alles erreichen können. Und damit Dein Server weiterhin Updates, Upgrades und Support erhält. Jetzt in der Aktion schenken wir Dir den Insider Club mit derselben Laufzeit wie der am längsten laufende aktive Wartungsvertrag dazu - bei sofortigem Laufzeitbeginn. Damit profitierst Du auch von einer vorzeitigen Verlängerung. Alle Infos: https://elabnet.atlassian.net/wiki/x/GQB8z

[NEUHEIT] Advanced Timer mit Ausgabe Restzeit, beliebige Zeitbasis, etc.

Hier stellen Foristen und Kunden Ihre EIGENEN Logikbausteine vor. Diese Logikbausteine stehen jedem im Rahmen der vom Autor eingeräumten / genannten Lizenz zur Verfügung.
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
Antworten

Ersteller
Robert_Mini
Beiträge: 3913
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1285 Mal
Danksagung erhalten: 2225 Mal

Advanced Timer mit Ausgabe Restzeit, beliebige Zeitbasis, etc.

#1

Beitrag von Robert_Mini »

Hallo zusammen!

Zeit wieder einmal eine Custom Logik zu teilen. Damit wird auch der FR (mein eigener): viewtopic.php?f=9&t=1085 gelöst.

Funktion:
Der Baustein basiert auf den Standard-Timer-Bausteinen und ergänzt diese um eine Ausgabe der abgelaufenen Zeit bzw. verbleibenden Zeit.
Mittels Umrechnungsfaktor kann die Zeiteinheit der Ein-/Ausgänge angegeben werden. Zusätzlich kann man in der gleichen Zeiteinheit ein zyklisches Senden während aktivem Timer gesetzt werden.

Anwendungsbeidpiel:
Ich verwende solche Timer an mehreren Stellen, zB. Bewässerungslogik.
Während dem Ablauf des Timers (=Zeitprogramm), soll je Bewässerungskreis auch die abgelaufene Zeit in der Visu angezeigt werden.
Auch die verbeibende Zeit (Restdauer des Programmes) soll laufend aktualisiert werden.

Eingänge:
  • Start/Stop: Der Timer wird bei Empfang eines "True" gestartet.
  • Faktor Zeit: Damit werden die angegebenen Zeitgrößendie intern in Sekunden umgerechnet.
    • Faktor 1 für Sekunden
    • Faktor 60 für Minuten
    • Faktor 3600 für Stunden
    • Faktor 86400 für Tage
  • Dauer: Legt fest, wie lange der Timer aktiv sein soll.
  • Sendeintervall: Gibt an, wie oft die aktuellen Stati gesendet werden sollen.
    Hinweis: Soll auch der Ausgang "Timer aktiv" zyklisch gesendet werden, muss die Sendeoption auf "a" (Always" gesetzt werden).
Ausgänge:
  • Timer aktiv: Zeit an, ob der Timer aktiv ist
  • Zeit abgelaufen: Gibt jene Zeit aus, die bereits abgelaufen ist
  • Dauer verbleibend: Gibt jene Zeit aus, die bis zum Ablauf des TImers verbleibt.
Der Baustein:

Bild

Ein Grafana Ausschnitt, schön zu sehen, dass bei inaktivem Timer auch keine Werte gesendet werden:

Bild

Code: Alles auswählen

/**===========================================================
Timer mit Ausgabe abgelaufener Zeit und Restzeit
============================================================*/
{
  "Input": [
        ["Start/Stop","Timer starten mit Wert 1","$I_Timer","c"],
	    ["Faktor Zeit","Umrechungsfaktor [sec/Zeiteinheit] legt die Zeiteinheit für Dauer und Sendeintervall fest. zb 1 für Sekunden, 60 für Minuten, 3600 für Stunden","$I_Faktor","c"],
	    ["Dauer","Nachtbetrieb","$I_Dauer","c"],
	    ["Sendeintervall","Zyklisch Senden wenn Timer=True","$I_Interval","c"]
  ],
  "Output": [
		["Timer aktiv","Ausgang","$State","c"],
		["Zeit abgelaufen","Dauer","$Time","c"],
		["Dauer verbleibend","Restdauer","$Time_Left","c"]
  ],
  "Level": [
		["$I_Timer","bool",false],
		["$State","bool",false],
		["$I_Dauer","float",0],
		["$Dauer_sec","float",0],
		["$Time_sec","float",0.0],
		["$Time","float",0.0],
		["$Time_Left_sec","float",0.0],
		["$Time_Left","float",0.0],
		["$I_Interval","float",30.0],
		["$Interval_sec","float",30.0],
		["$I_Faktor","float",1.0],
		["$Konst1","float",1.0],
		["$Konst0","float",0.0],
        ["$Val_ok","bool",false]
  ],
  "Module": [
	  // Umrechnung in Sekunden
		["Polynomial", "$I_Faktor", "$Dauer_sec",["$Konst0","$I_Dauer"]],
		["Polynomial", "$I_Faktor", "$Interval_sec",["$Konst0","$I_Interval"]],
	  // Timer und Stopuhr in sec starten bzw. Zeit aktualisieren	
		["Monoflop","$I_Timer","-$I_Timer","$State","$Dauer_sec",2],
		["Stopwatch","$I_Timer", "$Time_sec"],
	  // Restzeit berechnen
		["Polynomial", "$Konst1", "$Time_Left_sec",["$Dauer_sec","-$Time_sec"]],
	  // Zyklischer Trigger, wenn Timer aktiv
		["Clocksignal","$I_Timer",0,"$Interval_sec"],
      //
	  // Ausgabewerte in Eingabeeinheit umrechnen
	    ["Limiter","$Time_Left","$Time_Left","$Val_ok",["$Konst0", "$Dauer_sec"]],
	    ["Ratio", "$Time_Left_sec", "$Time_Left", "$I_Faktor"],
	    ["Ratio", "$Time_sec", "$Time", "$I_Faktor"]
  ]
}
/** 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. */
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.

Viel Spaß damit und gerne Rückmeldung, wenn was fehlt oder euch die Sache gefällt.
Robert
Zuletzt geändert von Robert_Mini am So Jan 12, 2020 9:13 pm, insgesamt 1-mal geändert.
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

StefanW
Elaborated Networks
Elaborated Networks
Beiträge: 10966
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 5407 Mal
Danksagung erhalten: 9209 Mal
Kontaktdaten:

#2

Beitrag von StefanW »

Hervorragend!

Danke dass Du Deine tolle Arbeit mit uns teilst. Jetzt würde ich mir nur noch wünschen, dass sich noch viele weitere Autoren finden

lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

Chiudalla
Beiträge: 27
Registriert: Do Mär 10, 2022 8:06 am
Hat sich bedankt: 19 Mal
Danksagung erhalten: 1 Mal

#3

Beitrag von Chiudalla »

Robert_Mini hat geschrieben: So Jan 12, 2020 2:55 pm Ausgänge:
  • Timer aktiv: Zeit an, ob der Timer aktiv ist
  • Zeit abgelaufen: Gibt jene Zeit aus, die bereits abgelaufen ist
  • Dauer verbleibend: Gibt jene Zeit aus, die bis zum Ablauf des TImers verbleibt.
Bravo, Danke für den Code.

Gäbe es eine Möglichkeit die Ausgabe (in Float) zu Text (also String) zu konvertieiren? Hintergrund ist die Anzeige in einem MDT Glastaster, der nur String als Datentyp entgegen nimmt.

VIele Grüße
Mat
TWS 3500 #735 | VPN aktiv | Reboot nach Rücksprache
4.0.1 - Live Wire

Ersteller
Robert_Mini
Beiträge: 3913
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1285 Mal
Danksagung erhalten: 2225 Mal

#4

Beitrag von Robert_Mini »

Hallo Mat!

Meines Wissens nach passiert automatisch, wenn du an den Float-Ausgang einen String verbindest.
Hast du das schon probiert?

lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
Antworten

Zurück zu „Zusätzliche Logikbausteine“