Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Fehlerbilder:
1. In der PluginListe taucht nun unter Rückgabewert ein ewig langer Errorcode auf. Siehe Screenshot in Bild 1. Wenn das oben richtig war, dann wüßte ich gerne warum? Wenn das oben falsch war, dann brauch ich hier wohl keine Antwort drauf haben:-)
2. Schaue ich mir den Code des Logikprozessors an, so fällt mir auf, dass der Editor in meinem Wiregate ab Zeile 104 alles rot darstellt. Der Editor scheint das Ende der Befehlskette in Zeile 104 nicht zu identifizieren. Siehe Screenshot in Bild 2. Irgendwelche Ideen?
1. Mach deine Config mal leer, also alles löschen innerhalb von "%logic=( );"
2. das sieht bei mir auch so aus. Ist mir aber auch eben erst aufgefallen, da ich den Editor nicht benutze.
3. Wichtiger als die Ausgabe in der UI sind die Ausgaben in /var/log/wiregate-plugin.log. Was steht dort wenn du das Plugin/Config speicherst?
D.h. im Log wird das Hinterhersenden der verzögerten '0' korrekt angekündigt. Leider bleibt es bei der Ankündigung - die '0' wird dann doch nicht hinterher gefeuert:
Nehme ich in der aussen_sued_timer_DELAY-Logik das delay-Statement raus, klappt es sofort. D.h. die Logik funktioniert, nur das Delay wird nicht ausgeführt.
Zuletzt geändert von wuestenfuchs; 29.03.2015, 19:01.
"Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren." - Benjamin Franklin
hatte noch jemand gestern beobachten können, dass die Timer mit der Zeitumstellung nicht zurechtkommen (d.h. noch immer nach der alten Zeit ausgeführt wurden)? Erst nach einem Neustart des wiregated lief es wieder wie gewohnt.
Ich möchte bei der dritten transmitadresse nicht eine 1 senden, sondern eine 3.
Wie kann ich ich das mit einer IF Logig umsetzen, also in der Form
Wenn transmit == 13/3/0 sende 1 ->DPT:1.001
Wenn transmit == 10/1/170 sende 1 -> DPT:1.001
Wenn transmit == 0/1/190 sende 3 -> DPT: 5.010
Gar nicht - im Prinzip kannst Du nur dann mehrere transmit-Adressen setzen, wenn sie alle den gleichen Wert bekommen sollen.
Dein Lösungsansatz ist es, anstelle einer einzigen Logik drei Logiken zu schreiben, je eine pro Transmit-Adresse: alle receiven auf der gleichen Adresse, lösen aber je nach empfangenem Wert auf ihrer Transmit-Adresse etwas aus.
Hallo
Meine letzte Logik bringt mich noch um den Verstand. Vermutlich sehe ich den Wald vor lauter Bäumen nicht. Folgenden Fehler liefert mir das Log-File:
Code:
2015-04-12 22:19:49.761,logikprozessor.pl,config error: Global symbol "$input" requires explicit package name at (eval 110306) line 49.
Global symbol "$input" requires explicit package name at (eval 110306) line 49.
Global symbol "$input" requires explicit package name at (eval 110306) line 55.
Global symbol "$input" requires explicit package name at (eval 110306) line 55.
Global symbol "$input" requires explicit package name at (eval 110306) line 55.
,0s,
Ab Zeile 47 stehen foldene Logiken:
Code:
# Licht der Hängeschränke mit Szenen "Zentral Licht aus"/"Haus verlassen" aus schalten
Licht_Haenge_aus => { receive=>'3/6/1', transmit=>'1/0/40', sub {
if (int($input) == 15 || (int($input) == 16 )
{ return 0;}
else { return undef; }
}, debug=>1 },
# Licht der Hängeschränke mit Insel-, Esszimmer- und Wohnzimmer-Licht an schalten
Licht_Haenge_an => { receive=>['1/0/15','1/0/25','1/0/30'], transmit=>'1/0/40', sub {
if (int($input->[0]) == 1 || (int($input->[1]) == 1 || (int($input->[2]) == 1 )
{ return 1;}
else { return undef; }
}, debug=>1 },
Ich habe auch andere Logiken mit einer If-else-Folge, und solche mit mehreren Inputs, aber nur diese macht Probleme. Sonst läuft alles top. Lösche oder kommentiere ich die Zeilen aus, gibts keine Fehler.
Die GA's sind alle angelegt.
Danke für die Hilfe.
Zuletzt geändert von martinb07; 13.04.2015, 13:06.
Grund: Zeilennummer korrigiert
Alex, das wars!!!! Wie konnte ich nur. Ich sags ja, vor lauter Bäumen den Wald nicht gesehen. Mit ein paar weiteren Anpassungen ("==" anstatt "=") läufts jetzt.
Und ich habe mir schon wieder ein Problem eingefangen. Diesemal aber eher ein Verständnisproblem. Vielleicht könnt ihr mir hier ja auch weiterhelfen.
Hintegrund:
Ich habe in der Küche zwei LED Streifen. Einer an der Decke über der Insel, der andere unter den Hängeschränken über der Spüle. Diese kann ich beide an meinem Siemens UP204 Raumcontroller und einen MDT Taster in der Küche schalten. Das funktioniert auch. Am MDT wird der Status auch korrekt angezeigt. Am UP204 wird der Dimwert auch (scheinbar) korrekt dargestellt. Nur leider geht die Anzeige am UP204 nicht korrekt auf 0% wenn ich diesen über eine Szene (Alle Lichter) oder am MDT (auch mittels Szene) ausschalter. Mit folgender Logik wollte ich das erschlagen. Leider funktioniert es nicht.
# Rollo Status Höhe
Rollo_Bad_lueften_Status => { receive=>['2/2/31','2/2/35'], transmit=>'2/2/51', translate => sub { (int$input->[0]+int$input->[1])/2 }, debug=>1 },
Rollo_Bad_alle_Status => { receive=>['2/2/23','2/2/27','2/2/31','2/2/35'], transmit=>'2/2/39', translate => sub { (int$input->[0]+int$input->[1]+int$input->[2]+int$input->[3])/4 }, debug=>1 },
Rollo_Schlafen_alle_Status => { receive=>['2/2/7','2/2/11'], transmit=>'2/2/47', translate => sub { (int$input->[0]+int$input->[1])/2 }, debug=>1 },
Rollo_OG_alle_Status => { receive=>['2/2/3','2/2/7','2/2/11','2/2/15','2/2/17','2/2/23','2/2/27','2/2/31','2/2/35'], transmit=>'2/2/43', translate => sub { (int$input->[0]+int$input->[1]+int$input->[2]+int$input->[3]+int$input->[4]+int$input->[5]+int$input->[6]+int$input->[7]+int$input->[8])/9 }, debug=>1 },
Anscheinend habe ich ein Verständnisproblem mit des Status GA's. Die Logic "Licht_Kueche_Status" taucht im plugin-Log auf, dort wird auch der korrekte Wert von 0 ausgegeben. Nur leider wird dieser nicht am UP204 angezeigt.
Die Rollo-Status-Logiken werden erst gar nicht ausgeführt. Die Status-GA's tauchen auch nicht im eib.log auf. Von daher kann die Logik auch nicht getriggert werden. Muss ich hier die Wert-GA's der abfragen?
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar