Posts by ElSol666

    Ja, ist einfach ein Widerstand (englisch "R") und ein Kondensator ("C") und es muss auch nicht unbedingt genau der 1nF Kondensator sein denn das hängt sowieso auch etwas von der Anzahl der Fühler ab ... bei mir hat es so gepasst!


    mspindi: Hier http://pdfserv.maximintegrated.com/en/an/AN148.pdf gibt es auch gute Infos zum 1W Bus und auf Seite 9 sieht man dort auch den simplen RC-Filter Aufbau


    Necropolis04: Ja, 2 Monate war ich bestimmt auch schon mit meiner Heizungssteuerung beschäftigt und man wird eigentlich nie fertig! ;-) Die letzten Tage habe ich z.B. eine neue Solarthermie-Anlage mit PWM-Hocheffizienzpumpen (PWM=PulsWeitenModulation) hinzugefügt und das musste ich dann Pi auch erstmal beibringen!

    Vielleicht hat ja mal wieder einer das gleiche Problem und meine Lösung hilft ihm weiter ...


    Ich habe 15 dieser Temperaturfühler am Pi hängen und das Ganze mit mindestens 100m Kabellänge (meist Cat5) insgesamt. Trotz der Versorgung mit 5 V und nur 1,2kOhm Pullup-Widerstand an 3,3V kam es immer wieder zu Fehlern.
    Meine Lösung: Ein RC-Filter in Pi Nähe mit einem 1nF Kondensator vom IO-Pin an GND und danach über 100 Ohm an die Datenausgänge der Fühler. Seitdem habe ich keinen einzigen Fehler mehr wo zuvor über 100 täglich auftraten, bin richtig glücklich über die einfach Lösung! :-)

    Wau, mehr als 20 Sensoren, das habe ich auch noch nicht gewusst ... super, vielen Dank!!!! :thumbs1:



    Genaue Zeitmessung habe ich zwar noch nicht gemacht, aber er scheint die 15 Sensoren in ca. 5 Sekunden durch zu haben denn ich lasse ihn sogar noch 10 sek schlafen und komme insgesamt bei 16-17 sek für einen Durchlauf raus.


    Ich habe nicht an jedem einen Widerstand, aber an drei Zweigen an denen jeweils mehrere Sensoren hängen. Dadurch kann ich sie rausziehen oder reinstöpseln wie ich lustig bin, geht ganz gut!
    Ich denke das wirkliche Problem ist die Länge der Leitungen obwohl sie abegeschirmt sind, zumal sie auch oft neben 220V Kabeln laufen (müssen) an denen induktive Verbraucher hängen, da kann schon mal etwas reinstreuen!


    Insgesamt bin ich auf jedem Fall vom Raspy begeistert, geniales Teil!!!! :D

    Hallo Andreas,


    ich habe ganz bewusst mehrere Widerstände denn das Ganze ist modular aufgebaut: Je mehr Fühler umso geringer muss ja auch der Widerstand sein, und durch die parallelen Widerstände kann man auch einfach mal ein Segment abziehen (z.B. einen Ofen) ohne dass die ganze Messung zusammenbricht.


    Kabel zu den Sensoren gleich lang ist unmöglich da z.B. bis zur Solarthermie auf dem Dach locker mal 15m drauf gehen, zu einem der Kaminöfen sind es gar 20m. Der Pufferspeicher, Brenner und Warmwasserspeicher stehen im Keller natürlich nah an der Steuerung ... wenn ich jetzt aber alle Kabel 20m lang machen würde, käme ich locker über eine Länge hinaus die überhaupt noch funktioniert mit dieser Art Bus, hierzu sind im Internet meist maximale Kabellängen von 50 bis 100m angegeben.


    Doppelte Sensoren an einen Messpunkt geht auch nicht denn die maximale Anzahl dieser 1-wire Fühler liegt bei 20 ... ich bin jetzt schon bei 15. Außerdem steigt, wenn es mal passiert, sowieso die ganze Fühlerkette aus.


    Minutentakt Abfrage ist auch unmöglich ... Du hast noch keinen Kaminofen richtig brennen sehen, oder? ;-) Da steigt die Temperatur seeeeehr schnell in Richtung 100 Grad (um die 70-80° liegt sie bei warmen Pufferspeicher eh schon), sprich in Richtung explodierenden Dampf ... wenn es da kurz davor nicht die Zwangskühlung durch kaltes Leitungswasser gäbe, welche ich natürlich unbedingt verhindern möchte!


    Übrigens bin ich beim Pull-Up Widerstand dank der langen Leitungen und vielen Fühler inzwischen schon bei 600 Ohm angelangt. Die Standard Schaltungen gehen von ca. 5 kOhm aus ... ich weiß nicht wieviel weniger ich meinem armen Kleinen noch zumuten kann bevor die Schnittstelle abraucht.


    Hast denn Du auch etwas Ähnliches am Laufen, Andreas?
    Ich versuche mal ein Bildchen anzuhängen vom FrontEnd der Steuerung das auf dem PC läuft.


    800x490

    Das sind ja einige gute Ansätze, dachte gar nicht dass dies doch soviel Resonanz erfährt!


    Es handelt sich um 1-wire Temperaturfühler (DS1820 von TI) die mit simpler Schaltung direkt am IO von Pi hängen. Das Konzept ist genial denn zum Einen sind sie sehr preisgünstig im Vergleich zu PT100 oder PT1000 Fühlern, zum Anderen braucht man keine aufwändige Schaltung und spart so sehr viel Strom ... und man spart auch viele Leitungen durch das Bus-System. Allerdings ist es bei so vielen Fühlern, die noch dazu zig-Meter auseinander liegen (Solarthermie auf dem Dach, Pi im Heizungskeller, zwei Kaminöfen in den Wohnungen), nicht so einfach die richtigen PullUp-Widerstände zu finden, und trotz abgeschirmter Kabel ist bei solch einem weit verzweigtem Bus-System auch immer mal eine Störung von außen möglich ... hier alles eliminieren zu wollen stünde in keinem Verhältnis zum Aufwand, vor allem da ja wie gesagt in einem ganzen Jahr das Problem erst zweimal auftrat. Auch der Aufwand für Redundanz, sprich einen zweiten Pi (denn es gibt ja nur eine 1-wire Schnittstelle) + Kabel + Fühler, ist deutlich zu groß!


    Die Abfrage der Sensoren erfolgt übrigens nicht sehr häufig, im Moment mache ich es alle 15 Sekunden und das sollte das System ja nicht wirklich umhauen!!! ;-)


    Aber vielleicht könnte man ja tatsächlich auch einfach den Prozess der für die 1-wire Schnittstelle verantwortlich ist, neu starten. Problem hierbei ist natürlich auch dass man den Zustand zum Testen nicht so einfach herbeiführen kann, so selten wie er auftritt ... da ist man mit einem Neustart des ganzen Systems natürlich auf der sichereren Seite.

    Jetzt habe ich an die Extperten diesbezüglich auch mal eine Frage:


    Die meisten scheinen den Watchdog ja abzulehnen weil man es auch anders lösen kann. Bei mir läuft Pi als recht komplexe Heizungsteuerung mit 16 Temperaturfühlern schon über ein Jahr sehr stabil und ich bin gegeistert :thumbs1: , jedoch kam es schon zwei Male vor dass sich die komplette Temperaturerfassung aufgehängt hat wobei dann alle einfach 0 Grad anzeigen (bzw. der Messwert als invalid eingestuft wurde, bei wassergeführten Kaminöfen die überhitzen können und dann notgekühlt werden müssen ist das sehr unangenehm). Gibt es da auch eine andere Möglichkeit als den Neustart des ganzen Systems wofür sich der Watchdog natürlich anböte?!

    Nein nein, der pi wurschtelt völlig alleine und autonom vor sich hin, lediglich zur Überwachung habe ich unter Windows ein Programm geschrieben das die entsprechenden Parameter per LAN liest und graphisch darstellt ... mein raspy sitzt ja im Keller als Heizungssteuerung und ist somit fernab jeden Monitors, habe mich wohl vorhin etwas falsch ausgedrückt! :(


    Du brauchst keinen sipgate-Account, das kannst Du alles über die FritzBox einrichten und testen, notfalls über die internen Nummern falls Du keine mehr von außen frei hast!

    Die Nummer herauszubekommen ist kein Problem! Hast Du Linphone mal installiert? Wenn Du es fertig konfiguriert und im Router (bei mir ist das eine Fritz Box 7390) die Weiterleitung an den raspy eingerichtet hast, erscheint nach einem Anruf die Datei ".linphonerc" im /home/pi Verzeichnis.


    In dieser Datei ist unter "[call_log_X]" (beim letzten Anruf [call_log_0] die ganzen Anrufe zu sehen und in dieser Section auch ein Eintrag "from=" mit der entsprechenden Nummer. Wäre also ein einfaches dieses mit den Ini-File Funtionen von C++ auszulesen.


    Da ich einige Menüs und ähnliches brauchte habe ich diesmal mit dem CBuilder gearbeitet, der ist für so etwas doch deutlich einfacher als VC, aber der Unterschied im Code ist ja nur minimal.


    Ich habe ein Endlosschleife die immer wieder diese Funktion aufruft und schaut, ob die Datei in den letzten 10s geändert wurde:



    #include <sys\stat.h>


    if ( !access ( "/home/pi/.linphonerc", 4 ) ) { // falls Datei exisitiert


    struct stat s;
    if ( stat ( "/home/pi/.linphonerc", &s ) ) // die Datei-Infos auslesen
    return false;


    time_t now; // aktuelle Zeit holen
    time ( &now );
    if ( ( now - s.st_mtime ) < 10 ) // falls zwischen jetzt und letzter Änderung
    Do something // weniger als 10s vergangen sind
    }


    Linphone selber starte ich automatisch wenn raspy hochfährt.

    Ja, klar, kein Problem, aber wie ich bereits gesagt habe schalte ich einfach nur wenn irgendein Anruf hereinkommt, unabhängig von der Nr! Aber die Anrufernummer steht auch in der Datei und man könnte auch die sehr einfach auslesen falls man sie braucht!

    Doch, den gibt es sicherlich, auch linphone funktioniert bei mir tadellos und ich kann damit vom raspy aus anrufen und angerufen werden, aber die meisten können einfach viel zu viel und sind zu umfangreich um einfach nur zum Schalten eines gpio´s zu fungieren! Da muss man sich durch tausende Zeilen Code kämpfen und Unmengen rauslöschen nur um eine kleine "call"-Funktion zu isolieren!


    Kann es sein dass Du deutlich mehr willst als nur irgendetwas per VOIP-Anruf einzuschalten?

    Hallo! Ich weiß, manche löten ja für ihr Leben gerne, aber es ist auch extrem zeitaufwändig!
    Ich habe genau die oben erwähnte Ralaiskarte direkt an den gpios und selbst wenn alle acht Relais eingeschalten sind passiert dem raspy nichts! Außerdem ist bei dieser Version eh noch eine Transistorstufe vorgeschaltet und die 3,3V langen so locker die Optokoppler zu schalten!

    Bei z.B. ebay


    http://www.ebay.de/itm/1711928…_trksid=p3984.m1439.l2649


    gibt es das Teil für 14,99 inkl. Versand (in Hong Kong gar für 7,65 ... das ist ja schon fast pervers, oder!?), dafür bekommt man normalerweise ja nicht mal die ganzen Einzelteile! ;)

    ja, zwar nicht auf direkte Art und Weise aber ich habe "linphone" installiert und dieses Programm schreibt immer bei einem Anruf etwas in die LogDatei "/home/pi/.linphonerc" (falls Du als Pi angemeldet bist), ich checke dann einfach nur noch wann diese Datei geändert wird.
    Ist zwar nicht unbedingt die schönste Methode aber funktioniert! ;)

    Ja, das ginge natürlich schon, aber es wäre schon irgendwie von hinten durch die Brust ins Auge, oder nicht? Schließlich habe ich ja ein direktes (Cat-)Kabel zwischen Fritzbox und dem RPi und muss nur noch irgendwie das Anrufsignal abfangen, das muss doch möglich sein!


    Hat vielleicht jemand Erfahrungen mit Elastix? Aber das hört sich auch schon wieder so riesig und komplex an ... oder vielleicht kann es ja YATE, hat das einer am Laufen?

    Moin ... nein, es wäre kein nochmaliger Anruf nötig denn der gpio könnte einfach zeitgesteuert wieder ausschalten.


    Zusätzliche Auswertungen auf der Fritzbox sind auch nicht nötig denn ich muss nur den Anruf auf die entprechende Nummer (ich habe noch eine unbenutzte Nr. frei) als VOIP weiterleiten an den RPi.


    Sogar welche Nummer anruft ist egal denn es wird nichts Wichtiges dadurch eingeschaltet.



    Also falls es wirklich jemanden interessiert was ich damit vorhabe: Ich will den RPi meine Heizung steuern lassen (sie ist recht komplex mit zwei Holzöfen mit Wasseranschluss, Pufferspeicher, Ölbrenner, Solarthermie ... und bisher funktionierend aber eben strohdoof gesteuert). Um nicht zuviel Energie für die Warmwasserumwälzung zu verschwenden verwende ich eine zeitgesteuerte Pumpe die Morgens und Abends einschaltet, und wenn jemand außerhalb dieser Zeit Warmwasser möchte ohne viel weglaufen zu lassen, ruft er einfach per Telefon diese eine Nummer an und schon läuft die Pumpe für einige Minuten an.

    Eigentlich möchte ich etwas recht Einfaches realisieren, und zwar dass durch einen Telefonanruf (VOIP) ein gpio geschaltet wird. Mein RPi hängt per LAN an einer Fritz!Box (7390) und die Weiterleitung eines Anrufes wäre kein Problem. Habe schon stundenlang gesucht und offensichtlich könnten wohl einige Programme wie Asterisk das bewerkstelligen, aber die sind alle monströs groß und viel zu aufwändig für solch eine kleine Aufgabe ... hat hier vielleicht jemand eine Idee? Wäre echt super! :D


    Achja, progammieren in C++ ist kein Thema, und von meinem neu erstandenen RPi bin ich echt begeistert!!! :thumbs1: