|
 |
|

12.01.2013, 23:25
|
|
Benutzer
|
|
Registriert seit: 12.12.2010
Ort: Essen
Beiträge: 38
|
|
Hab meinen Fehler schon selbst gefunden.
Mir gin es darum aus einem 1Bit Zeitversetzt 1Byte zu machen.
Ich bin aber immer von werten von 0-255 ausgegangen.
Scheinbar reicht es wenn ich 50 für 50% als translate definiere.
Hätte ich auch eher drauf kommen können.
Es ging um die ansteuerung eines Dali Gateways.
Mann hatte ich nen Brett vorm Kopf. ......
|

13.01.2013, 00:00
|
|
Benutzer
|
|
Registriert seit: 12.12.2010
Ort: Essen
Beiträge: 38
|
|
Andere Frage:
gibt es eine möglichkeit die receive GA nur auf einen bestimmten definierten Wert hören zu lassen?
Also so, dass die logik nur ausgeführt wird, wenn sagen wir 7/5/1 1byte 37 ist?
Bei mir sieht das so aus:
2013-01-12 23:50:08.327,Logikprozessor.pl,0.0.0 7/6/1:0 -> $logic{stair}{receive}(Logik) -> delay 1s ,0s, 2013-01-12 23:50:09.461,Logikprozessor.pl,$logic{stair}{trans mit}(Logik) -> 7/2/1:55 gesendet (delayed) ,0s,
2013-01-12 23:55:15.366,Logikprozessor.pl,0.0.0 7/6/1:1 -> $logic{stair}{receive}(Logik) -> delay 1s ,0s, 2013-01-12 23:55:16.500,Logikprozessor.pl,$logic{stair}{trans mit}(Logik) -> 7/2/1:55 gesendet (delayed) ,0s,
2013-01-13 00:04:12.270,Logikprozessor.pl,0.0.0 7/6/1:37 -> $logic{stair}{receive}(Logik) -> delay 1s ,0s, 2013-01-13 00:04:13.406,Logikprozessor.pl,$logic{stair}{trans mit}(Logik) -> 7/2/1:55 gesendet (delayed) ,0s,
Geändert von evilg (13.01.2013 um 00:08 Uhr)
|

13.01.2013, 00:20
|
|
Benutzer
|
|
Registriert seit: 27.12.2010
Beiträge: 260
|
|
Zitat von evilg
Andere Frage:
gibt es eine möglichkeit die receive GA nur auf einen bestimmten definierten Wert hören zu lassen?
Also so, dass die logik nur ausgeführt wird, wenn sagen wir 7/5/1 1byte 37 ist?
|
Weshalb kannst / willst Du dies nicht im Rahmen des Translate machen, als so bspw. so:
Code:
...... translate => sub { return unless ($input == 37); ......[hier der Code oder Wert der ausgeführt werden soll]......
?
Gruss
Diego
|

13.01.2013, 20:46
|
|
Benutzer
|
|
Registriert seit: 12.12.2010
Ort: Essen
Beiträge: 38
|
|
Sagen wir weil ich blutiger Neuling bin was das WG und das Programmieren angeht.
Alles was ich bis jetzt kann, hab ich mir die letzten 2 Tage angelesen und durch ausprobieren herausgefunden.
Also verzeit mir die eine oder andere blöde Frage. :-)
Bis jetzt hat aber alles geklappt. Danke für die schnelle Hilfe.
|

13.01.2013, 21:06
|
|
Benutzer
|
|
Registriert seit: 12.12.2010
Ort: Essen
Beiträge: 38
|
|
Hab da noch nen problem.
ich habe 2 Treppenlicht logiken:
stair1 => { receive=>'7/6/1', transmit=>'7/2/1', delay=>2, translate => sub { return unless ($input == 1); 100}, debug=>1 },
stair2 => { receive=>'7/2/1', transmit=>'7/2/6', delay=>2, translate => sub { return unless ($input == 100); 1}, debug=>1 },
Klappt auch alles soweit.
Die 7/2/1 kommt auf dem Bus an, die stair2 erekennt die 7/2/1 100 und sagt mir auch dass die 7/2/6 nach 2 sek gesendet wurde.
Es kommt aber nichts auf dem Bus an.
Hier mal die Pluginlogdaten:
2013-01-13 20:54:31.515,Logikprozessor.pl,2 initialisiert, 0.0.0 7/6/1:1 -> $logic{stair1}{receive}(Logik) -> delay 2s ,0s,
2013-01-13 20:54:33.773,Logikprozessor.pl,$logic{stair1}{tran smit}(Logik) -> 7/2/1:100 gesendet (delayed) ,0s,
2013-01-13 20:54:33.996,Logikprozessor.pl,0.0.0 7/2/1:100.0 -> $logic{stair2}{receive}(Logik) -> delay 2s ,0.3s,
2013-01-13 20:54:36.272,Logikprozessor.pl,$logic{stair2}{tran smit}(Logik) -> 7/2/6:1 gesendet (delayed) ,0s,
In den Daemon Logdaten steht folgendes:
Jan 13 21:01:47 wiregate868 /usr/sbin/wiregated.pl: WARN - None or unsupported DPT: sent to 7/2/6 value 1
Scheinbar kommt er nicht mit den Datenpunkttyp klar. Ich hab aber keinen Plan wie ich ihm sagen kann um welchen DPT es sich handelt.
Bei EibD habe ich diese jedenfalls eingegeben.
Geändert von evilg (13.01.2013 um 21:10 Uhr)
|

13.01.2013, 21:13
|
|
Erfahrener Benutzer
|
|
Registriert seit: 14.12.2011
Ort: Hessen
Beiträge: 992
|
|
Der Logikprozessor erwartet, dass alle GAs mit DPTSubId in /etc/wiregate/eibga.conf eingepflegt sind. Das habe ich so gemacht, damit die Logikformulierung einfacher werden kann. Außerdem ist das bei mir sowieso der Fall (ALLE GAs sind korrekt gepflegt, nicht nur die, die ich zufälligerweise tatsächlich im WG brauche). Ich habe irgendwo auch mal gepostet, wie ich das mache -> Suchfunktion, ansonsten nochmal fragen.
VG, sorry so knapp,
Fry
|

13.01.2013, 23:20
|
 |
Benutzer
|
|
Registriert seit: 20.06.2008
Beiträge: 384
|
|
Hallo Fry,
habe heute meinen zweiten Wiregate Tag hinter mir und bin über einige Empfehlungen aus anderen Threads auf dein Tool gestossen...
Ich kann dir gar nicht sagen, wie super ich das finde!!!
Ganz grosse klasse - fantastische Arbeit.
Nur der Thread hier wird schon ein wenig lang zum Einlesen.
Aber nach ca. zwei Stunden (und den ersten 30 Posts) lief die erste Funktion.
Mein Feedback: Ich habe lange versucht das eingangs gepostete PlugIn zum Laufen zu bringen, und das wollte einfach nicht.
Erst als ich dann die aktuelle Version vom SVN geladen hatte hat es geklappt.
Sehr herzlichen Dank!
Christian
|

13.01.2013, 23:47
|
|
Erfahrener Benutzer
|
|
Registriert seit: 14.12.2011
Ort: Hessen
Beiträge: 992
|
|
Hi Christian,
danke für dein Feedback, freut mich sehr. So soll es sein in einer Community: jeder profitiert von der Arbeit anderer.
Aktuell profitiere ich beispielsweise (natürlich neben Makkis Arbeit am wiregated.pl und ChrisMs Arbeit an der CometVisu) sehr von Jumis und yuhus Arbeit an der Ebus-Anbindung. Da freut es mich, wenn ich auch etwas an die Community zurückgeben kann.
Sieh dir gerne auch meine anderen Plugins an: Szenencontroller.pl, Ansagen.pl und Anwesenheitssimulation.pl.
In Vorbereitung - noch nicht ausreichend getestet - ist dann noch der selbstoptimierende Multi-PID-Heizungsregler (das "D" steht für den vorausschauenden, differenzierenden Teil und ist wichtig bei trägen Fussbodenheizungen). Der kommt wegen meiner Bauverzögerung vielleicht nicht mehr rechtzeitig für diesen Winter.
Have fun!
Fry
|

25.01.2013, 21:30
|
|
Benutzer
|
|
Registriert seit: 20.06.2011
Ort: Osnabrück
Beiträge: 377
|
|
Hallo Fry,
ich bin endlich auch dazu gekommen Deinen Logiprozessor auszuprobieren, herzlichen Dank erst einmal für die tolle Arbeit!
Leider habe ich aber noch ein paar Probleme, hier daher erst einmal die Codeschnipsel (die .pl und .conf sind beide ganz frisch aus dem SVN gezogen und per TextWrangler per SFPT editiert).
Die .conf:
Code:
%logic=(
TV_per_Licht => { receive=>'1/1/33', transmit=>['1/1/54','1/1/48'], translate => 1, debug=>1 },
Fenster_Sued => { receive=>'1/1/34', transmit=>'1/1/48', translate => 1, debug=>1 },
);
Die Plugin-Log sagt folgendes:
Code:
2013-01-25 21:04:00.700,Logikprozessor,2 initialisiert, ,0s,
2013-01-25 21:04:29.423,Logikprozessor,1.1.26 1/1/34: -> $logic{Fenster_Sued}{receive}(Logik) -> 1/1/48:1 gesendet ,0.3s,
2013-01-25 21:04:32.361,Logikprozessor,1.1.26 1/1/34: -> $logic{Fenster_Sued}{receive}(Logik) -> 1/1/48:1 gesendet ,0.3s,
2013-01-25 21:04:34.676,Googleweather,1,1.8s,
2013-01-25 21:16:04.796,Logikprozessor,2 initialisiert, ,0.3s,
2013-01-25 21:17:02.950,Logikprozessor,2 initialisiert, 1.1.26 1/1/34: -> $logic{Fenster_Sued}{receive}(Logik) -> 1/1/48:1 gesendet ,0.3s,
2013-01-25 21:17:06.183,Logikprozessor,1.1.26 1/1/34: -> $logic{Fenster_Sued}{receive}(Logik) -> 1/1/48:1 gesendet ,0.3s,
2013-01-25 21:18:21.363,Logikprozessor,1.1.26 1/1/34: -> $logic{Fenster_Sued}{receive}(Logik) -> 1/1/48:1 gesendet ,0.3s,
2013-01-25 21:18:23.391,Logikprozessor,1.1.26 1/1/34: -> $logic{Fenster_Sued}{receive}(Logik) -> 1/1/48:1 gesendet ,0.3s,
Und nun das KNX-Log
Code:
2013-01-25 17:11:07.671,A_GroupValue_Write,1.1.254,1/1/48,01,,,,0,low,7,T_DATA_XXX_REQ,0
2013-01-25 20:45:20.135,A_GroupValue_Write,1.1.254,1/1/48,00,,,,0,low,7,T_DATA_XXX_REQ,0
2013-01-25 21:17:47.231,A_GroupValue_Write,1.1.254,1/1/48,01,,,,0,low,7,T_DATA_XXX_REQ,0
2013-01-25 21:17:50.800,A_GroupValue_Write,1.1.254,1/1/48,00,,,,0,low,7,T_DATA_XXX_REQ,0
Ich habe das Gefühl, dass die transmit nicht sauber ausgeführt wird. Zum Vergeich habe ich per CV die gleiche Aktion auf der 1/1/48 ausgelöst, das funktioniert und wird auch entsprechend im KNX mitgeloggt. Insofern kann ich eine falsche GA ausschliessen
Ne Idee was ich falsch mache? Die eibga.conf ist ok, alle diese Adressen sind dort eingetragen...
Und wo ich schon dabei bin, kann ich in dem Plugin auch auch Werte einer Szene horchen und bspw. bei der 1/0/0 nur bei Wert 11 reagieren?
Danke & Gruß,
Hannatz
|

25.01.2013, 22:53
|
|
Erfahrener Benutzer
|
|
Registriert seit: 14.12.2011
Ort: Hessen
Beiträge: 992
|
|
Hannatz -
die beiden Logs scheinen nicht zusammen zu gehören, sieh mal auf die Uhrzeiten.
eibga.conf muss eine DPTSubId für die benutzten GAs enthalten (nur die liest der Logikprozessor aus).
Werte einer Szene: ja, das geht mit einem einfachen if() im translate. Beachte dass eine Szenen- GA die DPTSubId 5.010 hat und die übertragene Nummer die Nummer der Szene minus 1 ist (also für Szene 11 wird eine 10 ankommen).
VG, Fry
|
| Themen-Optionen |
|
|
| Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 22:30 Uhr.
|