UPGRADE IP 9 verfügbar!
Timberwolf VISU jetzt mit NEUEM Layout Editor
Freie Anordnung, Reihenfolge und Größe der Widgets - viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/06SeuHRJ

NEU! Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074

[Frage] [3.4.1] Logik & Pushover Verständnis

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
Antworten
Benutzeravatar

Ersteller
skywalker007
Reactions:
Beiträge: 31
Registriert: Do Mär 17, 2022 4:56 pm
Hat sich bedankt: 12 Mal
Danksagung erhalten: 34 Mal

[3.4.1] Logik & Pushover Verständnis

#1

Beitrag von skywalker007 »

Hallo *.*,

ich versuche mich so langsam mal in die Logiken einzuarbeiten und tue mich echt schwer damit.
Vielleicht kann mir mal jemand auf die Sprünge helfen.
Szenario:
Meine Rauchmelder geben mir ein Signal ("1" für 5 Sekunden) auf einen KNX Binäreingang bei Alarm.
Dieses möchte ich auswerten und dann den Text "Rauchmelder Alarm" per pushover verschicken.

Was ich soweit umgesetzt habe:
Die API Anbindung an Pushover funktioniert soweit und ist hier nicht das Problem. Das habe ich weitestgehend aus einem passenden Forum Thread raus kopiert.
Sieht zur Vollständigkeit so aus:

Bild

Die Logik davor habe ich hier aus dem Forum kopiert und sieht so aus:

Bild

Token - verwende ich in der Logik derzeit nicht, das hab ich vorerst im API hardcoded.
Message - habe ich in der Logik als Parameter gesetzt
K6 - ist mein Trigger vom Binärinput.
Zum testen schicke ich derzeit die GA einfach testweise auf den Bus, dann muss ich nicht immer den Rauchmelder auslösen :-).
Ich hab jetzt schon etwas damit experimentiert, und anfangs hatte ich das Problem das die Nachricht genau einmal gesendet wurde und dann nie wieder.
Im derzeitigen Zustand sendet die Logik die Nachricht zweimal, einmal bei True und 5s später wieder wenn der Trigger wieder auf False wechselt.

Fragen:
Mach ich mir das Leben hier zu schwer? Geht das einfacher?
Wie kriege ich es hin das die Nachricht nur bei true gesendet wird und bei false quasi die Logik wieder Zurückgesetzt wird?

In der Endausbaustufe möchte ich natürlich einen Selektor für die Message einsetzen und auch andere Trigger zu anderen Nachrichten verarbeiten, aber ich dachte ich fang mal mit einer an.
Danke für die Hilfe und VG!
Till
Till J. | TWS3500L ID:724 | Loxone Gen1 | 1-Wire | KNX | DMX | RS485 | MQTT | node-red | VPN on demand
-------
Möchte langfristig gern Loxone ablösen. Sucht immer noch die ideale Visu.

blaubaerli
Reactions:
Beiträge: 2308
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 884 Mal
Danksagung erhalten: 677 Mal

#2

Beitrag von blaubaerli »

Hallo Till,

wenn du da ohnehin eine Custom-Logik am Start hast, dann würde ich hier mit dem Latch arbeiten. Das sollte dir schon alle Optionen geben und ist in der KB oder im Wiki sehr gut dokumentiert.

Bin derzeit unterwegs, da ist das Suchen und einbauen von Links leide was umständlich…

Beste Grüße
Jens
Zuletzt geändert von blaubaerli am Di Mai 03, 2022 7:52 pm, insgesamt 1-mal geändert.
wiregate1250 & timberwolf168 (2600er), VPN offen, Reboot nach Vereinbarung

Robert_Mini
Reactions:
Beiträge: 3741
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1164 Mal
Danksagung erhalten: 2058 Mal

#3

Beitrag von Robert_Mini »

Muss aus meiner Sicht gar nicht custom sein (auch wenn ich ein Fan davon bin).

Für senden bei nur bei True braucht es folgendes:
- Inhibit Eingang (mit Option "c" on change), invertiert => sperrt bei 0
- bei Empfang von 1 wird die Logik freigegeben und sendet auf den Ausgängen (weil "a").

Der Trigger entfällt dann.

lg
Robert

PS: ich hoffe die Logik hat einen Sperreingang (unter + hinzufügen) ..., sonst bitte melden!
Zuletzt geändert von Robert_Mini am Di Mai 03, 2022 8:55 pm, insgesamt 1-mal geändert.
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

Advenoni
Reactions:
Beiträge: 292
Registriert: So Aug 12, 2018 11:55 am
Wohnort: Krumbach
Hat sich bedankt: 17 Mal
Danksagung erhalten: 114 Mal

#4

Beitrag von Advenoni »

Hallo Till,

nur auf die Schnelle:
Habe selber gerade eine Logik gemacht, die nur bei positiver Flanke am Eingang eine Nachricht sendet.

Code: Alles auswählen

{
    "Level": [
        // Levels allgemein
        ["$c0","int",0],
        ["$c1","int",1],
        ["$c2","int",2],
        ["$c3","int",3],
        ["$c4","int",4],
        ["$c5","int",5],
        ["$c6","int",6],
        ["$c7","int",7],
        ["$c8","int",8],
        ["$c9","int",9],
        ["$c10","int",10],
        ["$sdummy","string",""],
        ["$xfalse","bool",false],
        ["$xtrue","bool",true],

        ["$xMelder","bool",false],
        ["$xMelder_aktiv","bool",false],
        ["$xMelder_1","bool",false],
        ["$xMelder_2","bool",false],
        ["$xMelder_3","bool",false],
        ["$xMelder_4","bool",false],
        ["$xMelder_5","bool",false],
        ["$xMelder_6","bool",false],
        ["$xMelder_7","bool",false],
        ["$xMelder_8","bool",false],
        ["$xMelder_9","bool",false],
        ["$xMelder_10","bool",false],
        ["$sTitel","string",""],
        ["$sTitel_1","string",""],
        ["$sTitel_2","string",""],
        ["$sTitel_3","string",""],
        ["$sTitel_4","string",""],
        ["$sTitel_5","string",""],
        ["$sTitel_6","string",""],
        ["$sTitel_7","string",""],
        ["$sTitel_8","string",""],
        ["$sTitel_9","string",""],
        ["$sTitel_10","string",""],
        ["$sNachricht","string","Bewegung erkannt!"],
        ["$sBenutzer","string","                              "],
        ["$sBenutzer_1","string","                              "],
        ["$sBenutzer_2","string","                              "],
        ["$iMelder","int",0],
        ["$iBenutzer","int",0],
        ["$VAR<Inhibit?>", "bool", false]
    ],
    "Module": [
		["Latch","$xfalse","$xMelder","$xtrue",0],	// xMelder zunächst auf false setzen um nur Flanke zu erhalten
		["Latch","$c0","$iMelder","$xtrue",0],		// iMelder wieder auf 0 schreiben, um nur Flanken zu erkennen
		// Auswertung welcher Melder aktiv
		["Latch","$c1","$iMelder","$xMelder_1",1],
		["Latch","$c2","$iMelder","$xMelder_2",1],
		["Latch","$c3","$iMelder","$xMelder_3",1],
		["Latch","$c4","$iMelder","$xMelder_4",1],
		["Latch","$c5","$iMelder","$xMelder_5",1],
		["Latch","$c6","$iMelder","$xMelder_6",1],
		["Latch","$c7","$iMelder","$xMelder_7",1],
		["Latch","$c8","$iMelder","$xMelder_8",1],
		["Latch","$c9","$iMelder","$xMelder_9",1],
		["Latch","$c10","$iMelder","$xMelder_10",1],
        ["Multiplexer",["$xfalse","$xtrue"],"$xMelder","$iMelder"],	// Sofern iMelder >0, dann xMelder auf true
		// Wenn kein Melder aktiv Logik beenden
        ["Break", ["$VAR<Inhibit?>","-$xMelder"]],
		// Fehlermeldung selektieren
        ["Multiplexer",["$sdummy","$sTitel_1","$sTitel_2","$sTitel_3","$sTitel_4","$sTitel_5","$sTitel_6","$sTitel_7","$sTitel_8","$sTitel_9","$sTitel_10","$sdummy"],"$sTitel","$iMelder"],
		
        ["Multiplexer",["$sBenutzer_1","$sBenutzer_2"],"$sBenutzer","$iBenutzer"]
    ],
    "Input": [
        ["Melder 1","Melder 1","$xMelder_1","c"],
        ["Melder 2","Melder 2","$xMelder_2","c"],
        ["Melder 3","Melder 3","$xMelder_3","c"],
        ["Melder 4","Melder 4","$xMelder_4","c"],
        ["Melder 5","Melder 5","$xMelder_5","c"],
        ["Melder 6","Melder 6","$xMelder_6","c"],
        ["Melder 7","Melder 7","$xMelder_7","c"],
        ["Melder 8","Melder 8","$xMelder_8","c"],
        ["Melder 9","Melder 9","$xMelder_9","c"],
        ["Melder 10","Melder 10","$xMelder_10","c"],
        ["Titel 1","Titel 1","$sTitel_1","u"],
        ["Titel 2","Titel 2","$sTitel_2","u"],
        ["Titel 3","Titel 3","$sTitel_3","u"],
        ["Titel 4","Titel 4","$sTitel_4","u"],
        ["Titel 5","Titel 5","$sTitel_5","u"],
        ["Titel 6","Titel 6","$sTitel_6","u"],
        ["Titel 7","Titel 7","$sTitel_7","u"],
        ["Titel 8","Titel 8","$sTitel_8","u"],
        ["Titel 9","Titel 9","$sTitel_9","u"],
        ["Titel 10","Titel 10","$sTitel_10","u"],
        ["Benutzer 1","Benutzer 1","$sBenutzer_1","u"],
        ["Benutzer 2","Benutzer 2","$sBenutzer_2","u"],
        ["Benutzer Auswahl","Benutzer Auswahl","$iBenutzer","u"],
        ["Inhibit", "INHIBIT", "$VAR<Inhibit?>", "u" ]
    ],
    "Output": [
        ["Titel","Titel","$sTitel","a"],
        ["Nachricht","Nachricht","$sNachricht","a"],
        ["Benutzer","Benutzer","$sBenutzer","a"]
    ]
}

// 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."
Melder 1-10 sind die Eingänge bei denen auf True regiert wird.
Titel 1-10 der Titel der über Pushover gesendet wird.
Die Nachricht selbst ist bei mir fest hinterlegt in " ["$sNachricht","string","Bewegung erkannt!"],"
Die könnte man auch flexibel gestalten, habe ich in einer anderen Logik drin.
Derzeit kann ich zwei Benutzer angegeben die umgeschalten werden können, kann man aber auch abändern.
Logik ist noch nicht ganz fertig, macht aber prinzipiell mal das was du möchtest:
Nachricht bei positiver Flanke und ansonsten wird nichts gesendet.

Gruß,
Martin
wiregate ID:1619 / timberwolf 2400 ID:108 / 950 ID:240 ID:464, VPN offen, Reboot bitte nach Rücksprache
Benutzeravatar

Ersteller
skywalker007
Reactions:
Beiträge: 31
Registriert: Do Mär 17, 2022 4:56 pm
Hat sich bedankt: 12 Mal
Danksagung erhalten: 34 Mal

#5

Beitrag von skywalker007 »

danke @Advenoni.
Ich komme jetzt erst dazu mal an dem Thema weiter zu machen. Ich schau mir deine logik auf jedenfall mal an.
Grüße!
Till
Till J. | TWS3500L ID:724 | Loxone Gen1 | 1-Wire | KNX | DMX | RS485 | MQTT | node-red | VPN on demand
-------
Möchte langfristig gern Loxone ablösen. Sucht immer noch die ideale Visu.
Benutzeravatar

Ersteller
skywalker007
Reactions:
Beiträge: 31
Registriert: Do Mär 17, 2022 4:56 pm
Hat sich bedankt: 12 Mal
Danksagung erhalten: 34 Mal

#6

Beitrag von skywalker007 »

Advenoni hat geschrieben: Di Mai 03, 2022 9:42 pm Hallo Till,

Habe selber gerade eine Logik gemacht, die nur bei positiver Flanke am Eingang eine Nachricht sendet.
Hallo Martin,

mir gefällt dein Ansatz gut. Ich würde das ganze aber gern deutlich erweitern.
Hast du mal versucht das auf Mehrfachvariablen umzubauen um die fixe Beschränkung auf 10 Inputs aufzuheben?
Ich bin da noch ziemlich am Anfang meiner Gehversuche mit Custom Logiken.

Vg, Till
Till J. | TWS3500L ID:724 | Loxone Gen1 | 1-Wire | KNX | DMX | RS485 | MQTT | node-red | VPN on demand
-------
Möchte langfristig gern Loxone ablösen. Sucht immer noch die ideale Visu.

Advenoni
Reactions:
Beiträge: 292
Registriert: So Aug 12, 2018 11:55 am
Wohnort: Krumbach
Hat sich bedankt: 17 Mal
Danksagung erhalten: 114 Mal

#7

Beitrag von Advenoni »

Hallo Till,

meinst du mit Mehrfachvariablen ein Array?
Soweit ich weiß ist derzeit nichts dergleichen im TWS bei den Logiken möglich.
Die Beschränkung auf 10 habe ich gemacht, da es mir so reicht. Natürlich kann dies dementsprechend erweitert werden oder der Baustein einfach mehrfach verwendet werden, da er wegen der Länge schnell unübersichtlich wird.

Gruß,
Martin
wiregate ID:1619 / timberwolf 2400 ID:108 / 950 ID:240 ID:464, VPN offen, Reboot bitte nach Rücksprache

Robert_Mini
Reactions:
Beiträge: 3741
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1164 Mal
Danksagung erhalten: 2058 Mal

#8

Beitrag von Robert_Mini »

Hallo Till!

Es gibt zwar Mehrfachvariablen, die beliebig mit + als weitere Eingänge hinzugefügt werden können.
Sie können meines Wissens nach aber nur in UND/ODER/XOR und BREAk verwendet werden. Auch beim Multiplexer sollte es gehen.

Für Ausgänge gibt es zwar optionale Ausgänge (mit + zu aktivieren), aber keine Multivariablen.

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

Zurück zu „Logikengine & Logik-Editor“