Hallo,
ich möchte kurz mein erstes eigenes Projekt vorstellen. Da ich zur Auswertung eines Stromzählers mit S0 Ausgang nichts wirklich passendes finden konnte, habe ich mir zwei Panstamps mit Panstick und Batterieboard besorgt. Mach meine ersten Gehversuchen mit C, habe ich dann den TemHumPress Sketch genommen und um 4 Zähler erweitert. Es werden "nur" die aktuellen 15 min Werte übertragen, danach wird der Zähler im Panstamp zurückgesetzt.
Alle 4 Eingänge sind Interrupt gesteuert. Da der Panstamp nur einen Interrupt frei hat, werden die Eingänge mit Dioden ausgekoppelt, so das trotzdem jeder Eingang den Interrupt auslöst und die Interruptroutine nachsieht, welcher Eingang es war und zählt entsprechend hoch.
Das Programmieren mit der IDE geht bei mir immer noch mehr nach "try and error" - was noch fehlt ist der Sleep Modus, den ich nicht richtig ans Laufen bekommen habe. Die Zeitsteuerung läuft über Millis, auch hier habe ich noch keine Erfahrungen was passiert wenn der Timer nach 49 Tagen überläuft.
Angeschlossen ist zur Zeit ein Stromzähler mit S0 Ausgang - geplant ist den Gaszähler anzuschließen, aber dazu muss der Netzbetreiber mir einen mit Impulsausgang installieren. Als letztes will ich noch einen Ferraris Zähler mit einem Lesekopf versehen - also gibt es noch einiges zu tun, aber seit gestern kommen schon mal die ersten Werte 8).
Wer Interesse an dem Sketch, Schaltbildern oder Fotos hat, kann sich bei mir melden.
Gruß Christoph
mich würde interessieren, wie du den einen Interrupteingang mitteld der Dioden auf 4 erweitert hast. Schaltbild?
über den pin change interrupt kann man auf jedem eingang einen ingerrupt auslösen.
schau mal in bininp sketch. da geht das ganz ohne externe beschaltung.
gruss
andre
Hallo justme1968,
wo kann ich diesen Sketch finden ?
Das mit den Dioden ist eigentlich einfach. Kathode an den Eingang, Anode auf Pin 3 (Interrupt). Wenn auf dem Eingang Minus liegt, wird gleichzeitig der Interrupt auf Minus (genauer 0,7V) gezogen, was den Interrupt auslöst. Das die Dioden zu den anderen Eingängen in Sperrichtung liegen, wird dahin nichts weitergegeben. Alle Eingänge und der pin3 sind mit Pullup Widerständen auf +Ub gezogen.
Gruß Christoph
der ist im examples verzeichnis der panstamp lib.
gruss
andre
Hallo Andre,
kann man bei dem Sketch auch auf die Pullup-Widerstände verzichten, oder werden die benötigt?
Gruß Christoph
ich glaube der sketch verwendet dir internen pullups.
gruss
andre
Hallo Andre,
werde ich mir mal ansehen wenn ich wieder daheim bin. Mit den internen Pullup das interessiert mich. Ich habe das Batterie Board. Dort sind auf dem Board Flächen für Pullups - aber die scheinen nicht bestückt zu sein. Wenn das so klappen würde, wäre das eine Erleichterung und vermutlich auch eine Energieeinsparung. Ich habe die Pullup bereits vergrößert, da die Batterie viel zu schnell leer war. Mal sehen was für eine Laufzeit ich hinbekomme.
Gruß Christoph
je nach dem wie viele impulse pro sekunde deine s0 zähler erzeugen kommt der panstamp nicht mehr sehr viel zum schlafen und verbraucht natürlich recht viel batterie und abhängig von der konfiguration des sendeintervalls (bzw. ob er bei jeder änderung sendet) braucht er dazu noch mal mehr.
es kann also sein das ein batterie betriebener s0 zähler nicht sinnvoll ist.
ein batteriebetrebener temperatur und luftdruck sensor mit einem panstamp läuft bei mir seit fast einem jahr mit der gleichen batterie.
gruss
andre
Hi Christoph,
Hast Du mal mein Modul unter http://forum.fhem.de/index.php/topic,19285.0.html angeschaut?
Das funkt zwar nicht, aber zählt auch s0 Impulse per PinChange Interrupt auf einem Arduino oder Jeenode.
Vielleicht kannst Du ja einen Teil davon brauchen.
Gruß
Stefan
Zitat von: Bennemannc am 05 April 2014, 07:56:28
geplant ist den Gaszähler anzuschließen, aber dazu muss der Netzbetreiber mir einen mit Impulsausgang installieren.
Viele Gaszähler haben einen eingebauten Magneten im letzten Zählerrad. Wenn auf Deinem Zähler was von "blabla Impulse/m3" draufsteht, dann brauchst Du nur noch einen Reedkontakt anbauen.
Hallo,
meiner hat eben noch keinen Magneten - deshalb kommt ein anderer mit Magnet rein. Das ist schon eingestielt - muss nur noch den Termin abstimmen.
Gruß Christoph
Hallo,
nach dem Tip von Justme1968 habe ich das Ganze umgebaut. Die Batterien halten viel länger - wie lang genau muss ich noch austesten - vorher war es nur ein Tag :-(. Ich wollte 15 Minuten Werte haben - hierbei kam ich mit Panstamp.gotosleep nicht weiter, da der von mir vorher genutzt timer millis() nicht weiter läuft. Da der sleep Modus von einem Interrupt jederzeit unterbrochen werden kann, habe ich den vorhanden Sketch umgebaut. Als Zeitsteuerung den Watchdog "WDTO_1S" nach jedem aufwachen zähle ich hoch, abziehen tue ich noch die Anzahl der Interrupts, die mit einem Faktor von 1,5 in die Berechnung eingehen. Damit komme ich ziemlich genau auf die 15 min (-10 sec). Wenn ich mehr Daten habe, werde ich versuche, das Ganze noch weiter zu verfeinern.
Gruß Christoph
So -ein weiterer Zwischenbericht:
auf der Suche nach einem Lesekopf für den Ferraris Zähler meiner Solaranlage, bin ich bei E... auf einen 230 V Zähler mit LED / LCD Anzeige gestoßen, der auch einen Impulsausgang hat. Ich habe mir überlegt, das ich für 13 € keine Lesekopf basteln oder kaufen kann und habe das Teil geordert und eingebaut.
Nach dem ersten Tag musste ich feststellen, das der Zeitdrift duch die Impulse in der aktuellen Version nicht richtig kompensiert werden, Also habe ich den Sketch etwas umgestellt. Ich versuche jetzt über millis() einen Kompensationswert zu berechen. Wenn das klappt werde ich darüber berichten.
Gruß Christoph
PS. Das Batterie/Akkuproblem ist sehr viel besser - es ist immer noch der erste Akku drin und der geht noch nicht mit der Spannung runter.
Hallo,
ein weiteres Update zu dem Projekt.
Nachdem ich den 230V Hutschienenzähler installiert habe, kam ich mit der Kompensation nicht wirklich weiter. Ich habe versucht, anhand der Impulse und der Sleeps auf ein Sendeintervall vom 15 Minuten zu kommen. Das war nicht umsetzbar - besonders der 230V Solarzähler war nicht in den Griff zu bekommen. Ich habe dann die sleepzeit auf 60ms gesetzt. Jetzt komme ich ziemlich genau auf 15 Minuten - befürchtete negative Auswirkungen auf die Batterielaufzeit haben sich nicht bestätigt. Der 2700mAh Akku hält jetzt schon über drei Wochen durch und es ist noch nicht zu sehen, das er in die Knie geht. Alle 1-2 Monate den Akku tauschen ist für mich ok.
Gruß Christoph
PS. Als nächstes ist der Gaszähler dran - da muss aber vom Versorger erst noch einer mit Magnet eingebaut werden.
Hallo,
ein weiteres Update - der Akku ist immer noch ok, hat jetzt 5 Wochen auf dem Buckel. Also passt das mit alle 2 Monate Akku tauschen. Die 15 Minuten Impule kommen zeimlich genau, wobei für mich der Tageswert (die Summen werden mit average generiert) wichtiger sind. Diese werden 10 Sekunden vor Mitternacht mittles eines "at" Befehls in eine Logdatei geschrieben.
Mit dem Gasmesser bin ich noch nicht weiter - der ist immer noch nicht gewechselt. Mal sehen ob das noch etwas vor der nächsten Heizperiode gibt.
Gruß Christoph
PS. Bei Interesse stelle ich meinen Sketch und die notwendige XML Datei natürlich gerne zur Verfügung.
.... und läuft und läuft ....
Immer noch der erste Akku 2700 mAh - die Batterieüberwachung sagt immer noch mehr als die 1,2V Nennspannung. Da sollte noch ein Monat drin sein - drei Monate fände ich schon klasse. Mal sehen was noch geht.
Gruß Christoph
Hallo Zusammen,
der Akku hält jetzt schon drei Monate. Man sieht so langsam, das die Spannung weniger wird, aber ein oder zwei Wochen wird er schon noch machen.
Das mit dem Gasmesser ist leider noch nicht realisiert. Mal sehen ob ich das noch vor der Heizperiode hinbekomme.
Sonst sehe ich diese Projekt als erfolgreich abgeschlossen an. Wer Informationen bzw. den Sketch haben möchte, kann sich gerne melden.
Gruß Christoph
Hi,
kannst du den Sketch und das XML JusteMe1968 mal mit der BItte geben, das er dieses im FHEM Trunk -> contrib zu seinen bisherigen sketches mit dazustellt?
Ich kann mir vorstellen in nächster Zeit diesen Sketch zu nutzen bzw Teile davon weiter zu verwenden...
Grüsse
Hallo Tobias,
mal sehen ob ich alles zusammen bekomme.
Also am fhem Server läuft der Modem Sketch. Der andere Panstamp sitz auf einem BatteryBoaed mit Temperatur und Feuchtigkeitsmessung un Zählt. Die Pins sind extern mit Pulldown Widerständen versehen.
Die Zip ist das gepackte Sketchverzeichnis, die Config.txt das was in der Fhem.cfg dazu steht und die beiden XML Dateien. Ich hab mir einfach eine Developer ID genommen, soweit ich weiß, hat Justme1968 eine offizielle Developer ID. Es würde Sinn machen, dann auch diese zu verwenden, um nicht irgendwann schwierigkeiten zu bekommen.
Wenn noch etwas fehlt - einfach melden.
Gruß Christoph
Hallo,
so heute - besser gesagt gerade eben - habe ich den Akku getauscht. Der erste hat jetzt 5 Monate durchgehalten. Ich hatte ehrlich gesagt nicht mit dieser Zeit gerechnet, sondern mit 3 bis maximal 4 Monaten kalkuliert. Ansonsten läuft das Teil völlig problemlos und ohne Störungen.
Gruß Christoph
Hallo Christoph,
danke für den "Anstoß" , werde ich mir mal ansehen!
Ich besorgen mir gerade einen Original-Impulsgeber für meinen Gaszähler, mit div. Reedkontakten und Hall-Sensoren
hatte ich bisher leider keinen Erfolg !
gruss
klaus
Hallo Tobias und alle anderen hier,
auf der Suche nach einer Möglichkeit meine beiden EasyMeter (Selbstbau- IR-Picker) und meine beiden Wechselrichter (RS485) irgendwie ins FHEM zu bekommen, bin ich (wohl zwangsweise) auch hier aufgeschlagen ;) Das wäre ziemlich genial, da die beiden Zähler im Keller hängen und die WR auf'm Dachboden. Da macht es natürlich Sinn, hier auch über Funk quasseln zu lassen...
Erste Frage:
Ist das alles noch aktuell?
Zweite Frage:
Kann ich den "panStamp shield for Raspberry PI" so ohne weiteres als drittes RXTX auf die beiden bereits vorhandenen SCC's (Busware) draufstecken, ohne das es Stress mit den SCC's gibt?
Wenn man das beides mit JA beantworten kann, würde ich mich gerne mit dran hängen, optional auch per PN/Mail, falls es hier niemanden mehr ausser mich interessiert.
Dazu wäre noch zu sagen, das ich zwar weiss was C ist, aber damit was bosseln ist (noch) nicht. Ich bin der Hardware-Freak und für's Löten zuständig, gerne auch SMD 0201... wenn's denn sein muß ;) Ich bin schon der Held, das ich zwischenzeitlich den PI mit Rasbian so halbwegs im Griff habe ^^
zum panshield: ich weiss nicht ob es mechanisch passt und auch nicht ob es elektrisch und logisch geht.
ich würde dir aber sowieso empfehlen einen panstick mit panstamp zu verwenden. dann bist du zum einen unabhängig falls du die platform wechselst und du kannst einen aktiven usb hub verwenden wenn der raspberry probleme mit der spannungsversorgung hat.
gruss
andre
Hallo Andre,
ja, der Stick wäre sicherlich eine Option, aber dazu müsste ich mein PI- Gehäuse umbauen, da zwischen USB- Anschlüssen und Seitenwand zu wenig Platz ist; da passen gerade mal Mini BT resp. WLAN / KeyBoard zwischen (und LAN natürlich); da ist so kein Drankommen.
Ich hatte das Gehäuse seinerzeit extra so konstruiert, das Netzteil (4A) und bis zu 4 SCC's da mit rein passen. Antennen dann nach oben raus aus dem Gehäuse via PigTail und Flansch-Buchsen. Ich würde ungern ein neues Gehäuse bauen wollen und daher ja meine Frage, ob Kenntnisse bezgl. des Zusammenspiels mit dem Shield bestehen...
Vielleicht sollte ich einfach mal eines bestellen und schauen, ob es mit den SCC's läuft, wenn mir wer hilft, das erstmal grundsätzlich in Gang zu bekommen...
EDIT sagt: Welchen soll ich denn nehmen? AVR oder NRG??? AVR würde mir eher gefallen, da ich auf Tiny's schon in ASM/BASCOM unterwegs war. Was spricht denn für und wider den beiden Versionen?
Und sollte ich ggf. gleich auf den 900MHz- Bereich gehen, um Hassle mit den auf 800MHz rumgeisternden Systemen zu vermeiden?
Hi,
hab mal versucht den Sketch von Bennemannc zu kompilieren.
Leider stört sich die IDE an diesem Befehl: panstamp.sleepWd(WDTO_60MS);
S0Counter:163: error: 'WDTO_60MS' was not declared in this scope
Wenn ich den rausnehme, läuft die kompilierung durch.
Was ist der Unterschied zu einem panstamp.GoToSleep(); ??
Hallo,
ich habe den Sketch mit der IDE 1.0.5 kompiliert. Bei der IDE 1.5 oder 1.6 haben sich die Bibliotheken geändert. Ich bei dem WDTO_60MS habe ich einen festen Wert für den Sleep. Ich zähle ja die Sleeps und die Interrupts um auf ca. 15 Minuten zu kommen. Wie lange der Panstamp.GoToSleep() dauert weiß ich nicht - ich habe auch keine Ahnung, ob diese Sleep durch einen Interrupt unterbrochen / abgebrochen werden kann. Das mußt Du einfach mal testen.
Gruß Christoph