Ankündigung

Einklappen
Keine Ankündigung bisher.

Verständnisfragen Plugin

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] Verständnisfragen Plugin

    Hallo Zusammen
    Ich bin blutiger Anfänger in sachen Wiregate und Pearl, aber seit ich das Teil vor ein paar Tagen gestartet habe hats mich gepackt :-)

    Nun wollte ich mir das Schwellwert Plugin laden, um die 8bit Rückmeldung je Kanal meines DuoDMX in ein 1bit Status auszugeben (zB >=20 ergibt Lampe ein, darunter Lampe aus)

    Und nun meine wahrscheinlich dumme Frage; muss ich das Plugin für jede GA einzeln anlegen, oder das gleiche für mehrere Schwellwerte? (Total werdens sicher 24)

    Schon mal Danke für eure Antworten

    Gruess Markus

    Code:
     [TABLE="class: highlight tab-size js-file-line-container"]
     	 		[TR]
     			[TD="class: blob-code blob-code-inner js-file-line, bgcolor: #F8EEC7"]# Demo-Plugin Schwellwertschalter[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# V1.0 2010-03-19[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"] [/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]### Definitionen[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# Eigenen Aufruf-Zyklus auf 300 Sekunden setzen[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]$plugin_info{$plugname.'_cycle'} = 300;[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]my $wert_ga = "5/2/79"; # Gruppenadresse mit dem Wert[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]my $schwellwert = 35; # Schwellwert[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]my $ziel_ga = "14/6/10"; # Adresse an die Wert bei Unter/überschreitung gesendet wird[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]### Ende Definitionen[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"] [/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"] [/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]my $luftfeuchte;[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# Plugin an Gruppenadresse "anmelden"[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]$plugin_subscribe{$wert_ga}{$plugname} = 1;[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"] [/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# Nun kommt es darauf an, ob das Plugin aufgrund eines eintreffenden Telegramms[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# oder zyklisch aufgerufen wird! Wir wollen beides..[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# Bei eintreffenden Telegrammen reagieren wir gezielt auf "Write" (gibt ja auch Read/Response)[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# und die spezifische Gruppenadresse, das Plugin könnte ja bei mehreren "angemeldet" sein.[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]if ($msg{'apci'} eq "A_GroupValue_Write" and $msg{'dst'} eq $wert_ga) {[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]$luftfeuchte = $msg{'value'};[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]#oder nur falls nicht importiert: $msg{'data'} ist dann leer/undef![/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]#$luftfeuchte = decode_dpt9($msg{'data'});[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"] [/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]} else { # zyklischer Aufruf[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# "9" (DPT) kann entfallen falls richtig importiert![/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]$luftfeuchte = knx_read($wert_ga,300,9);[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]}[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"] [/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]if ($luftfeuchte >= $schwellwert and $plugin_info{$plugname.'_merker_schwellwert1'} ne 1) {[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# Sende an ZielGA den Wert "1" als 1bit-Wert (DPT1)[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# "1" (DPT) kann entfallen falls richtig importiert![/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]knx_write($ziel_ga,1,1);[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# und merken[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]$plugin_info{$plugname.'_merker_schwellwert1'} = 1;[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]} elsif ($luftfeuchte < $schwellwert and $plugin_info{$plugname.'_merker_schwellwert1'} eq 1) {[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# unter Schwellwert,vorher aktiv -> sende 0[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]knx_write($ziel_ga,0,1);[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# und merken[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]$plugin_info{$plugname.'_merker_schwellwert1'} = 0;[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]}[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"] [/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]return;[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# verfügbare Daten in %msg:[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# $msg{'repeated'} 0/1[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# $msg{'sequence'} 0-xxx[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# $msg{'buf'} Rohdaten LPDU[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# $msg{'src'} Quelladresse[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# $msg{'tpdu_type'} T_DATA_XXX_REQ[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# $msg{'data'} rohe Telegrammdaten[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# $msg{'rcount'} Routing-Zähler[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# $msg{'apci'} A_GroupValue_Write,A_GroupValue_Read,A_GroupValue_Response (u.v.m)[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# $msg{'class'} low/alarm/high/system[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# $msg{'dst'} Zieladresse x/y/z[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# $msg{'datalen'} Datenlänge[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"]# $msg{'value'} Dekodierter Klartext-Wert (nur falls ESF importiert!)[/TD]
     		[/TR]
     		[TR]
     			[TD="class: blob-num js-line-number"] [/TD]
     			[TD="class: blob-code blob-code-inner js-file-line"] [/TD]
     		[/TR]
     	 [/TABLE]
    Zuletzt geändert von mmarkus; 08.12.2015, 12:34.

    #2
    Hallo Markus,

    irgend etwas ist bei dem Code-Posten schief gelaufen, für mich ist der nicht wirklich lesbar...

    Ob Du pro GA ein Plugin machen möchstest oder in einem Plugin mehrere GAs abrühstückst ist Dir überlassen. Je nach Kontext macht das eine oder das andere Sinn.

    High-End für mehrere GAs in einem Plugin und das auch noch mit externer Config macht der Multi-RTR, der gerade erst in einem anderen Thread angesprochen wurde.
    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

    Kommentar

    Lädt...
    X