Leider hat mh heute meinen Server so lahm gelegt, dass er nicht mal mehr auf ein Ping antwortet... Komme erst am Wochenende wieder physisch dran, aber dann werde ich das cacti/mh Zusammenspiel nochmal genauer unter die Lupe nehmen.
Mit dem cronjob scheinst Du recht zu haben; zumindest steht's in der cacti-Doku, dass man diesen einrichten muss. Vielleicht habe ich da noch ein paar Zombies im Hintergrund laufen gehabt...
Ankündigung
Einklappen
Keine Ankündigung bisher.
Misterhouse - Stromzähler - Zählerstand und Momentanverbrauch
Einklappen
X
-
schön das es noch jemand gibt der diesen Weg gewahlt hat :-)
Ich muss per cronjob die poller.php aufrufen (alle 5 minuten). Verwende die cacti Version 0.8.6j mit SuSE.
Woran das bei Dir liegt kann ich leider nicht sagen.
Viel Glück
Grüsse
Einen Kommentar schreiben:
-
Hi commander0815, Dein kurzes HowTo für Cacti war sehr hilfreich, ich kann nun wunderbare Charts auf meinen iPod touch zaubernZitat von commander0815 Beitrag anzeigen- dann muss noch per cronjob die daten für cacti gepolled werden
mache ich minütlich per:
user: wwwrun Command
hp /usr/share/cacti/poller.php > /dev/null 2>&1 jede minute

Allerdings habe ich ein Problem mit dem Polling der Daten - mir scheint, poller.php wird schon direkt von der webapp regelmäßig aufgerufen, den zusätzlichen cron-Job scheint man nicht zu brauchen, oder?
Zumindest bekomme ich so Daten herein. Sonderbarerweise klappt das aber nur ca 24 Stunden lang (manchmal auch nur 10 Stunden, schwer zu sagen, wann das Problem genau eintritt). Dann steigt ganz plötzlich der Speicherbedarf von mh ins Unermessliche, bis der ganze Server lahm liegt. Es schein daran zu liegen, dass mh den mhsend Prozessen keine Antwort mehr liefert und davon dann immer mehr erzeugt werden (und nicht in Timeouts laufen). Ich konnte leider absolut nicht herausfinden, warum da plötzlich keine Werte mehr an mhsend gemeldet werden...
Hat jemand schon etwas ähnliches beobachtet und kennt eine Lösung? Oder hat zumindest eine Idee, wie man das ganze Debuggen kann?
Danke im Voraus!
Kai
Einen Kommentar schreiben:
- dann muss noch per cronjob die daten für cacti gepolled werden
-
stromzaehlercode
@RaK
falls Du den Code für den stromzaehler ergänzt verbessert hast, wäre ich dankbar für den Code und ein paar bsp´s wie Du den einsetzt.
Danke im Vorraus.
Habe mir auch einen abb zähler zugelegt und verwalte nun:
-strom
-gas
-voltaik anlage
-wasser
per impulszähler
grüsse
Einen Kommentar schreiben:
-
Mit den folgenden beiden Zeilen setze ich die Rufumleitung in Asterisk. Natuerlich bedarf es in Asterisk noch ein paar Zeilen die die Rufumleitung entsprechend dieser in der DB gesetzten Variablen einrichten.
Die Ansage ist mit folgenden Zeilen realisiert und zwar, wenn ich die Haustuere wieder schliesse (eq OFF ist bei mir ein geschlossener FK). MH sagt immer wenn ich bei Abwesenheit nach Hause komme an wieviele Nachrichten (ungelesen) in der VB sind.Code:system("asterisk -rx 'database put eib anwesend 0'") if (state_now $Anwesend eq OFF); system("asterisk -rx 'database put eib anwesend 1'") if (state_now $Anwesend eq ON);
Code:my $v_ast_svm = new Voice_Cmd "Say how many messages"; my $WechselNachAnwesendWarGerade; $WechselNachAnwesendWarGerade = 0 if ($Startup); $WechselNachAnwesendWarGerade = 1 if (state_changed $Anwesend eq ON); if (said $v_ast_svm || (state_changed $FK_Haustuere eq OFF && $WechselNachAnwesendWarGerade == 1)) { $WechselNachAnwesendWarGerade = 0; system("asterisk -rx 'show voicemail users' > /tmp/ast_voicemail.txt"); my $ast_file = new File_Item("/tmp/ast_voicemail.txt"); my $text; $text = $ast_file->read_all() if ($ast_file->exist()); my @lines = split("\n",$text); my $t; for(my $i=1;$i0 ) { if ($newmsg eq "1") { $newmsg = "eine neue Nachricht"; } else { $newmsg = $newmsg . " neue Nachrichten"; } speak "Wir haben $newmsg in der Mailbox"; } else { speak "Willkommen zuhause."; } } } }
Einen Kommentar schreiben:
-
sprachinfos
Hi RaK,
könntest Du mir bitte die scripte senden, oder kurz vorstellen, wie Du die Sprachausgabe realisiert hast, wenn Du nach Hause kommst und dir misterhouse sagt, es waren x Anfrufe in Abwesendheit
bzw. noch besser die Scripte, wie Du das mit der an/abwesendheit gezaubert hast.
Lässt Du den Text nur einmal vorlesen, oder wiederholen und falls wiederholung, wie wird es abgeschaltet?
Grüsse und Danke
Zitat von RaK Beitrag anzeigenZur Visu. Ja, die sieht im Moment eher bescheiden aus, aber mir reicht es. Preis Leistung ist entscheidend. Ich habe keinen Bildschirm im Moment. Ich habe Sprachausgabe. Ist im daily life unauffälliger und ich höre unseren "Matthias" (so heisst unser Haus und nein, es hat nichts mit dem Matthias hier im Board zu tun!) auch im Bett.
Wenn ich also bei offenem Badezimmerfenster bei einer Aussentemperatur von <12Grad als letzter das Licht ausmache, dann sagt die Stimme, dass das Badezimmerfenster noch auf ist. Damit brauch ich keine (micro)Visu am Bett. Wieder Geld gespart
. Ergo ist mir der Visu Part nicht so wichtig.
Einen Kommentar schreiben:
-
Just gestern hat das Thema Visu jemand in der Mailingliste aufgebracht. Auf einmal sind die Sourcen von Timo wieder da http://misterhouse.wikispaces.com/TimoZitat von RaK Beitrag anzeigenIch hoffe ja immer noch darauf, dass sich dem Thema mal jemand animmt. Ich wäre dabei (als tester
, nur habe ich mit CSS, HTML, Flash absolut NULL Ahnung.
Mal schauen was daraus wird.
Einen Kommentar schreiben:
-
Die Squeezebox ist eine Server Client Lösung. Der Client kann HW sein (ist es bei mir auch), SW geht aber auch. In jedem Fall brauchst du den Server und das ist SW, die läuft auf meinem Rechner und stream die Musik zum HW Client.Zitat von EPIX Beitrag anzeigenWegen Squeezebox: ich dachte das Ding ist eine Hardware? - du hast das Ding auf einem Linux-PC laufen?
Einen Kommentar schreiben:
-
klingt gut...
ich habe seit 6 Monaten einen Touch PC neben mir stehen, nicht einmal ein OS noch drauf...
Die meiste Zeit habe ich verplempert um auf dem Router herumzubasteln und hin und her zu probieren....
Langsam zeichent sich meine Lösung ab, eibd auf dem Router - auf dem zus. 2GB USB-STick zu installieren (wenn's möglich ist auch noch MH) und den Touch als Visu und Bedienstation zu nehmen, die über Nacht AUS ist...
Auf dem Router soll dann nur die eibd und die Protokollierung laufen.
Wegen Squeezebox: ich dachte das Ding ist eine Hardware? - du hast das Ding auf einem Linux-PC laufen?
Derzeit bin ich mit dem Heizungsumbau ziemlich ausgelastet, parallel wurden die Innentüren getauscht (->Frau ist lästig wegen der nötigen AUsbesserungen...)
Einen Kommentar schreiben:
-
@commander0815: Ich habe einen ABB 4.24.1. Der hat einen Haupt und einen Zwischenzaehler. Fuer beide kann man verschiedene Wertebereiche einstellen (von 8 bis 32 bit, signed und unsigned). Ausserdem kann ich festlegen, dass der Wert bei jedem (n-ten) Inkrement auf den Bus gesendet wird und zusaetzlich auch noch alle x Sekunden. Beide Varianten kann man in allen Kombinationen einstellen. Ich hab nur alle 60sec. Das reicht mir für den Momentanverbrauch. Ich kann an meiner Stromkuve sogar sehen, ob der Kühlschrank gerade das Agregat an hat oder nicht.
@epix: Ja ich bin mit MH sehr zufrieden. Ich komme an jede Schraube und habe ALLE Freiheiten. Wenn man mit vi umgehen kann und Perl versteht ist man auf der Gewinnerstrasse. Natuerlich mit entsprechendem Aufwand. Man bekommt nichts geschenkt.
Hardware hat mich 150Euro gekostet, ein Touchscreen würde nochmal <200Eur kosten und ich habe für 350 Euro einen Server inkl. Visu Hardware, den ich habe den Rechner so geplant, dass er dort wo die Visu mal hinsoll stehen kann. Das ist unschlagbar guenstig!
Ausserdem läuft auf der Kiste noch der Squeezecenter (Squeezebox), ein Apache (Web-Server), ein Asterisk (Anrufbeantworter zu sagen wäre gemein
, ... .
Zur Visu. Ja, die sieht im Moment eher bescheiden aus, aber mir reicht es. Preis Leistung ist entscheidend. Ich habe keinen Bildschirm im Moment. Ich habe Sprachausgabe. Ist im daily life unauffälliger und ich höre unseren "Matthias" (so heisst unser Haus und nein, es hat nichts mit dem Matthias hier im Board zu tun!) auch im Bett.
Wenn ich also bei offenem Badezimmerfenster bei einer Aussentemperatur von <12Grad als letzter das Licht ausmache, dann sagt die Stimme, dass das Badezimmerfenster noch auf ist. Damit brauch ich keine (micro)Visu am Bett. Wieder Geld gespart
. Ergo ist mir der Visu Part nicht so wichtig.
Ausserdem ist das nur eine Frage der Zeit bis jemand mit HTML/Flash/... Kenntnissen sich auch darueber aergert und eine Lösung zusammenzimmert.
Bei der Squeeezebox hat es keinen Monat gedauert bis es eine schicke iPod kompatible Oberfläche fuer den Server gab.
Ich hoffe ja immer noch darauf, dass sich dem Thema mal jemand animmt. Ich wäre dabei (als tester
, nur habe ich mit CSS, HTML, Flash absolut NULL Ahnung.
Dafuer eben mehr bei den Bits&Bytes. Wer also mal wieder irgendeinen bisher nicht unterstuetzen Datentyp in MH braucht, der melde sich!
DAS ist der Vorteil von openSource.
Ich sehe einen wesentlichen Vorteil (es gibt sicher mehr! Ich will keinen Glaubenskrieg lostreten) des HS. Das sind die Module die man einfach austauschen kann. Der eine schreibt ein Rollladen Modul und schickt es allen anderen. Diese Sicht auf "Module" gibt es so bei MH nicht.
LG
Einen Kommentar schreiben:
-
@rak:
du verwendest MisterHouse?
Wie bist du damit zufrieden, was mir ein bischen abgeht ist eine "richtige" Visu....
Abesehen davon ist MH ein guter Ansatz...
Einen Kommentar schreiben:
-
welchen binärzähler hast du?
welchen BE hast Du genau?
Meiner kann "nur" 16bit und wenn ich einen Wert sende, wird dieser nicht gesetzt.
Wird der Wert bei Deinem gesetzt?
grüsse
commander
Zitat von RaK Beitrag anzeigenHallo Jungs,
mein BE Eingang ist eingetroffen. Ich hab in angeschlossen und den Stromzähler auf den Bus gebracht. Hier ein kleines Howto.
Die Zählerapplikation entsprechend eingestellt (+1 bei positiver Flanke, Entprellzeit 30ms, zyklisch senden alle 60sec, bei Wertänderung nicht senden, ..., Datentyp 32bit unsigned) und mit einer Gruppenadresse verbunden.
Einen Kommentar schreiben:
-
achtung: in mhsend müssen alles was nicht vom socket kommt darf nicht ausgegeben werden. (nur die zahlen)
hier zur sicherheit meine mhsent mit den auskommentierten zeilen
HTML-Code:!/usr/bin/perl # -*- Perl -*- #--------------------------------------------------------------------------- # File: # mhsend # Description: # Sends data to mh over the inter/intranet # Author: # Bruce Winter bruce@misterhouse.net # Latest version: # http://misterhouse.net/mh/bin/mhsend # Change log: # 09/14/99 Created. Change log is at the bottom of this file. # # This software is licensed under the terms of the GNU public license. # Copyright 1999 Bruce Winter # #--------------------------------------------------------------------------- use strict; my ($Pgm_Path, $Pgm_Name, %parms); use Getopt::Long; if (!&GetOptions(\%parms, "h", "help", "host=s", "port=s", "stdin", "password=s", "log:s", "file=s", "display:n", "state", "speak", "run", "scale=i") or (@ARGV == 0 and !$parms{stdin}) or $parms{h} or $parms{help}) { print<<eof; $Pgm_Name sends data to the MisterHouse program, through the internet/intranet. Data will be put in the mh/data/mhsend directory The following flags control what the companion mh server.pl code does: -file xyz -> Files the data into data_dir xyz -log xyz -> Logs the data into data_dir xyz.log -run -> Runs the data as command. -state -> Get state of an object -display xyz -> Displays the data. xyz is how log to leave the display up. -speak -> Speaks and displays the data. -password xyz -> Authorization password is xyz. -host xyz -> Run on host xyz. Default is localhost. -port xyz -> Use port xyz. Default is 8084. Usage: $Pgm_Name 'hi there' $Pgm_Name -display 60 hi there Bruce $Pgm_Name -port 8084 -host misterhouse.net 'hi there' $Pgm_Name -speak file_to_speak.txt $Pgm_Name -file file1 file_to_send.txt $Pgm_Name -state \$tv $Pgm_Name -log This is a good url: http://goodplace.com echo 'hi there' | $Pgm_Name -stdin eof exit; } my $data; &setup; &send; sub setup { # Do some setup stuff $|++; BEGIN { ($Pgm_Path, $Pgm_Name) = $0 =~ /(.*)[\\\/](.+)\.?/; ($Pgm_Name) = $0 =~ /([^.]+)/, $Pgm_Path = '.' unless $Pgm_Name; eval "use lib '$Pgm_Path/../lib'"; # Use BEGIN eval to keep perl2exe happy } $parms{host} = 'localhost' unless $parms{host}; $parms{port} = '8084' unless $parms{port}; $parms{scale} = 1 unless $parms{scale}; # Get the data to send if ($parms{stdin}) { while (<>) { $data .= $_; } } elsif (@ARGV == 1 and -e $ARGV[0]) { open (DATA, $ARGV[0]) or die "Could not open input file $ARGV[0]: $!\n"; while (<DATA>) { $data .= $_; } } else { $data = join(' ', @ARGV); } } sub send { use IO::Socket; my $l = length $data; #print "Sending $l bytes of data to $parms{host} port $parms{port}, "; my $socket = new IO::Socket::INET (PeerAddr => $parms{host}, PeerPort => $parms{port}, Proto => 'tcp') or die "\nCould not create socket: $!\n"; #print "socket made, "; my $action; if ($parms{speak}) { $action = 'speak'; } elsif (defined $parms{display}) { $action = "display $parms{display}"; } elsif ($parms{file}) { $action = "file $parms{file}"; } elsif ($parms{log}) { $action = "log $parms{log}"; } elsif ($parms{state}) { $action = "state $parms{state}"; } elsif ($parms{run}) { $action = "run"; } else { $action = "log default"; } print $socket "$action\n"; # Lets us uuencode to 'hide' the password. # Not sure if this exactly the same as http password encoding. my $password = pack("u", "mhsend:$parms{password}"); print $socket "Authorization: Basic $password\n\n"; print $socket $data; #print "data sent\n"; sleep 1; shutdown $socket, 1; # This closes writes, but still allows reads #print "Response: "; # <$socket>; # First record is blank (not sure why) while (<$socket>) { print $_ * $parms{scale}; } print "\n"; } # Not sure about this ... sub main::uuencode { my ($string) = @_; return pack("u", $string); }
Einen Kommentar schreiben:
-
Verstehe ich das richtig, dass man keine X Oberfläche braucht. cacti laeuft als Webservice? LG
Einen Kommentar schreiben:


Einen Kommentar schreiben: