Thema erledigt.
Es wird nun regelmäßig der Wert abgefragt und auch sauber vom Vitogate beantwortet. Es wird also auch sauber eine RRD gefüllt.
Danke für die Hilfe, hat bei mir einiges zum Verständnis des WG und den Plugins beigetragen.
gruss, crsp
Ankündigung
Einklappen
Keine Ankündigung bisher.
- √ - Problem mit RRD_creator.pl
Einklappen
Dieses Thema ist geschlossen.
X
X
-
Ohhh, ich mag ja den Tag nicht vor dem Abend... aber es sieht besser aus!
Es gab eine neues bzw. neueres Applikationsprogramm fürs Vitogate und das reagiert sogar auf die "Lesen" Anfrage auf die GA. Hab gerade mal den Gruppenmonitor laufen und beobachte was so den Tag über passiert.
gruss, crsp
Einen Kommentar schreiben:
-
Du könntest den Betriebsstundenzähler SourceForge.net Repository - [openautomation] Contents of /wiregate/plugin/generic/Betriebsstundenzaehler.pl dafür missbrauchen. plugin_cycle setzt Du dann auf 240 Sekunden und fügst an geeigneter Stelle ein knx_write ein ... bin im Moment etwas in Eile, heute Abend evtl. mehr falls Du nicht weiter kommst.
Gruß
Einen Kommentar schreiben:
-
Auf "lesen" antwortet das Vitogate offensichtlich nicht. Ich sehe zwar, dass das Plugin regelmäßig auf der GA fragt, aber da scheint eisernes Schweigen zu herrschen.
Hab das gestern dann mal noch ausprobiert und aus der ETS alle paar Minuten eine Statusmeldung auf die GA des Verdichters geschickt und siehe da, der Graph wird gemalt. Doof.
Gäbe es vielleicht die Möglichkeit (Plugin?) den Status, der 1x gesendet wurde, solange alle x-Minuten zu repeaten, bis ein anderer Status an die GA gesendet wird?`
Gruss, crsp
Einen Kommentar schreiben:
-
Antwortet sie auf Lesetelegramme?
Sollte jedes KNX-Gerät können (ok, war bissig, ist ja keins
)
Ansonsten kann man tricksen: das RRD weiss davon nichts, dann kommen halt alte Werte, sofern aus dem (eibd-)Cache gelesen wird (mit hohem/0-timeout)
Aber Fakt ist: das RRD will (Defaultmässig: mind. alle 300s*3=15 Minuten) einen Wert haben..
Makki
Einen Kommentar schreiben:
-
Nein, der Status wird nur bei Änderung gesendet...sprich bei EIN und AUS.
Das Viessmann Vitogate kann wohl nicht zyklisch senden
Einen Kommentar schreiben:
-
Wie wird die auf den Bus gegeben -> DPT ?
Oder geht es um reines I/O ? Sollte eigentlich auch passen. Die GA auf die der Wert des Verdichters gesendet wird ist sauber ins WireGate übertragen (ETS-Import bzw. im Webmin bei den Gruppenadressen eingetragen)?
edit:
Achso, wird der Status des Verdichter regelmäßig (< 5 Minuten) gesendet?
Einen Kommentar schreiben:
-
Hm, irgendwas mache ich wohl falsch. Es kommen für die Verdichterlaufzeit einfach keine Werte an. Der RRD wird erstellt, aber nichts angezeigt.
Hab jetzt mal testweise die Temperatur vom WW Speicher in 'nen RRD schreiben lassen, die Kürvchen werden sauber gemalt.
gruss, Rico
Einen Kommentar schreiben:
-
Richtig, wie Jumi bereits geschrieben hat:
Plugins nur als solche laufen lassen - also im Plugin-System - weil sich nur dort die passende Laufzeitumgebung befindet (die Plugins werden durch den wiregated.pl daemon ausgeführt).
Stefan
Einen Kommentar schreiben:
-
Die Scripte/Plugins laufen in der Konsole definitiv nicht. Da fehlen einfach Abhängigkeiten in Form von Subs die im wiregated liegen.
Der SVN Code ist eine 1:1 Kopie von meinem System.
Baustelle 2.0
Einen Kommentar schreiben:
-
ja, aber im Plugin-Log tauchen auch Fehler auf:
2012-12-23 22:44:53.063,rrd_graph.pl,,0s,Undefined subroutine &main::rrdupdate called at (eval 888) line 6.
2012-12-23 23:32:05.212,RRD_creator.pl,,0s,syntax error at (eval 904) line 27, near "'/etc/wiregate/plugin/generic/conf.d/'("
und die Line 27 motzt er ja auch an, wenn ichs auf der console ausführe....
Einen Kommentar schreiben:
-
hallo,
die plugins werden vom Wiregate ausgeführt. schau mal im Webmin!
Gruß
Einen Kommentar schreiben:
-
Der Code ist eigentlich der aus dem SVN:
und dazu in /etc/wiregate/plugin/generic/conf.d/ eine RRD_creator.conf mit der ZeileCode:#!/usr/bin/perl # Buswerte in RRD speichern # V2.0 2012-08-16 # Info und Konfiguration in /etc/wiregate/plugin/generic/conf.d/RRD_creator.conf_sample # Eigene Konfiguration speichern unter /etc/wiregate/plugin/generic/conf.d/RRD_creator.conf # Alternativ über Webmin -> Plugins -> Pluginname -> config # Variablen deklarieren my @rrds; # conf einlsen &readConf; # Aufrufzyklus = Heartbeat RRD $plugin_info{$plugname.'_cycle'} = 300; # MAIN foreach my $rrd (@rrds) { update_rrd($rrd->{name},"",knx_read($rrd->{ga},300,$rrd->{dpt})); #plugin_log($plugname, "triggered $rrd->{name}"); } return; # SUBS sub readConf { my $confFile = '/etc/wiregate/plugin/generic/conf.d/'.basename($plugname,'.pl').'.conf'; if (! -f $confFile) { } else { #plugin_log($plugname, "reading conf file [$confFile]."); open(CONF, $confFile); my @lines = <CONF>; close($confFile); my $result = eval("@lines"); #($result) and plugin_log($plugname, "conf file [$confFile] returned result[$result]"); if ($@) { plugin_log($plugname, "ERR: conf file [$confFile] returned:"); my @parts = split(/\n/, $@); plugin_log($plugname, "--> $_") foreach (@parts); } } }
wird, wenn ich das scropt als root auf der console ausführe mitCode:push @rrds, { name => "WP_Kompressor_Laufzeit", ga => "0/5/4", dpt => 1};
Undefined subroutine &main::basename called at ./RRD_creator.pl line 27.
quittiert.
Einen Kommentar schreiben:
-
Poste mal Deinen gesamten Code sonst ist das stochern im Nebel.
Gruß
Einen Kommentar schreiben:
-
Ja, in der RRD_creator.conf im conf.d steht im Moment eine Zeile
daraufhin spuckt er diese FM.Code:push @rrds, { name => "WP_Kompressor_Laufzeit", ga => "0/5/4", dpt => 1};
Baue ich nun das RRD_creator.pl entsprechend deinen Empfehlungen um, spuckt er folgendes:
Undefined subroutine &main::knx_read called at ./RRD_creator.pl line 19.
Gruss, Rico
Einen Kommentar schreiben:


Einen Kommentar schreiben: