Jump to content

DoIT

Members
  • Posts

    39
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

DoIT's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. Hallo, vielleicht ist das für jemanden interessant, das geht sicherlich auch nach Anfrage für die WARP charger. http://www.c-charge.com/
  2. Schönes Projekt, sieht super aus. Freue mich auf dein Video. 😀 Darf man Fragen für was man so viele kleine Teile benötigt?
  3. Da hier auf meinen Thread verlinkt wurde, möchte ich mich kurz zu Wort melden. Leider ist das Problem nach wie vor nicht gelöst, es ist aber schön wenn ich nicht der Einzige mit dem Problem bin. Wie viele Sensoren verwendest du? Welche Kabellängen? Ist es bei dir auch so, dass die LEDs vom Bricklet ausgehen oder werden "nur" keine Sensoren mehr gefunden?
  4. Hallo Uwe, wie man das mit Tinkerforge realisiert kann ich nicht sagen. Aber wie ich es realisiert habe. Habe mir Xiaomi Aquara Wassersensoren besorgt. Kannst du suchen gibts schon für unter 20€. Diese funken mit Zigbee. Hier hättest du jetzt die möglichkeit über die Originale Xiaomi Bridge (kostet ca. 30-50€) und Node Red oder auch über die Xiaomi App verschiedenste Benachrichtigungen einzustellen. mit Node Red könntest du sogar so weit gehen das du ein Ventil vom Hauswasser schließt. Sobald etwas erkannt wurde. Hat natürlich aber auch seine Gefahren sowas. Ich habe mir z.B. statt der Xiaomi Bridge einen zigbee2mqtt Adapter gebaut. https://www.zigbee2mqtt.io/ Damit könntest du dann noch viel mehr Zigbee geräte Hersteller übergreifend auslesen/ansteuern. Und das ganze ohne China Cloud Server 😅 Grüße Markus
  5. Hallo kreaktiv, vielen Dank für deine Empfehlungen. Im Grunde habe ich es genauso wie du geschrieben hast umgesetzt. Was ich jedoch geändert habe ist das ich zusätzlich beim Busmaster noch einen 1k8 Pullup hinzugefügt habe. Beim Tinkerforge Onewire Bricklet ist ein 4k7 eingebaut. So komme ich auf etwa 1k3 Pullup gesamt. Das habe ich gemacht da der Bus dadurch etwas stabiler wurde bzw. das Signal mit dem Oszi besser aussieht. Ich vermute immer noch das es zu so einem Latchup Effekt kommt das sich der Busmaster verabschiedet. Ich denke das kann nur passieren, wenn eine Spannungsspitze daherkommt oder ein EMV Impuls von einer größeren Induktiven Last. Da ich aber nur ein paar kleine Relais und Pumpenmotoren mit ca. 100W verbaut habe denke ich das die Induktivität von der Wärmepumpe kommen muss. Hier ist aber auch elektronik verbaut welche das nicht stört. Die Frage welche ich mir stelle wie könnte man das ganze Abschirmen oder entstören? Die anderen Tinkerforge Module stört das jedenfalls nicht. Hier ist es noch nie zu einem Ausfall gekommen. So wie es aktuell ist kommt es so ziemlich alle zwei Tage zu einem Busmaster Ausfall. Regelmäßiges reseten der Onewire Bricklets hilft leider auch nicht. Es muss also alle 2-3 Tage etwas passieren wodurch der Master sich verabschiedet. Ich habe ja 3 Busmaster aufgebaut welche nicht wirklich zusammen hängend sind. Es sind hier unterschiedliche Kabellängen und Sensoren verbaut und jedes der Bricklets fällt eben hin und wieder aus. Bevor dieser Ausfall passiert läuft der Bus wirklich super. Es nervt einfach immer alle 2-3 Tage die Module ab und anstecken zu müssen. Danke für deine Hilfe. Grüße
  6. Hallo lapawa, danke für deinen Tipp, gute Idee. :-) Habe ich zum testen mal eingebaut. Leider kommen aber hier kein Fehler zustande, habe das jetzt über einen Tag laufen lassen. Es passiert eher spontan. Habe nun noch versucht jeden Kabelschirm zu jedem Fühler auf Erde zu legen. Hat leider auch nichts geändert. Irgendwie ist das Onewire Bricklet schon sehr empfindlich. Ich finde einfach nichts wo ich noch ansetzten könnte. Als nächstes werde ich mir wohl oder übel mal einen Arduino schnappen müssen und schauen ob dieser auch neu startet oder sich verabschiedet. Aktuell ist es so das ca. jeden 2 Tag eines der 3 Bricklets sich verabschiedet. Leider nicht immer das gleiche und leider auch nicht regelmäßig. Ich bin aktuell sogar am überlegen alle Onewire Sensoren gegen PT100 oder ähnliches zu tauschen. Die ganze Steuerung ist recht umfangreich und es scheitert aktuell nur mehr an den Sensoren. Gerne möchte ich mein Projekt und auch den Code dazu veröffentlichen. Dazu soll aber auch alles mal soweit funktionieren. Nicht das sich der nächste dann auch ärgern muss. Im Code habe ich das sogar schon länger umgesetzt das ich auch Thermoelement Bricklets und auch PT Bricklets verwenden kann. Habe das nur aus Kostengründen nicht gemacht. Aktuell würde ich eben 18 Sensoren benötigen. Das würden viele Masterbricks sowie Sensor Bricklets benötigt. Ganz aufgeben habe ich die Hoffnung noch nicht, dass noch jemand der sich besser mit Elektronik auskennt, eine Schaltung hinbekommt wie man das Bricklet entstören oder das Problem ganz beben könnte. Auch nach Tagen des Lesens in Foren und googeln bin ich nicht viel schlauer geworden und konnte keine Lösung finden. Teilweise werden dann spezielle Busmaster empfohlen, am besten soll da wohl der LinkUSB von iButtonLink sein. Der soll eine spezielle Schaltung verwenden. Vielleicht kann da jemand was darüber sangen? Ich konnte da nichts rausfinden. Vielleicht kaufe ich mir auch so einen zum testen. Ich finde es nur sehr Schade in meiner sonnst komplett mit Tinkerforge Modulen aufgebauten Steuerung eventuell eine andere Lösung einbauen zu müssen. Grüße
  7. Hallo, ich wollte nochmals Rückmeldung geben. Eines vorweg es kommt immer noch zu Lesefehlern sowie "toten" Onewire Bricklets. Ich denke auch das es irgendetwas mit Störungen zu tun hat. Nur komme ich nicht dahinter wie ich das Problem beheben könnte. Als Versuch habe ich nun die ganzen Onewire Bricklets auf eine Aluplatte montiert welche ich dann provisorisch geerdet habe. Gefühlt am meisten hat jedoch der 100Ohm Serienwiederstand am Datenpin gebracht. Jetzt passiert es nur noch alle 1-2 Tage das sich das Onewire Bricklet "tötet". Auch Lesefehler passieren jetzt noch ca. 2 mal pro Tag. Was gegenüber vorher schon sehr viel besser ist. Wie könnte ich eine Entstörung aufbauen um Ruhe zu bekommen? Hast du da eine Idee? Grüße
  8. Hi, vielen Dank für die Rückmeldung 😀 Genau so hatte ich das gemacht. Also auf deinen Vorschlag bezogen. Ich habe das Bricklet wieder zum Leben erweckt in dem ich es ab und angesteckt habe. Dann meinen Code so angepasst das keine automatischen Resets gemacht werden. Dann im Brickviewer die Einstellung der LED auf "an" gesetzt. Nun habe ich gewartet bis das Bricklet wieder "tot" war und gesehen das die LEDs trotz dieser Einstellung aus waren. Also kein LED geleuchtet oder geblinkt hat. Auch der Zugriff auf das Bricklet per Brickviewer etc. ist nicht möglich. Ich habe zum testen nun ein Onewire Bricklet an meinem Schreibtisch mit Masterbricklet getestet(gleicher Code). Nur 2x Sensoren ohne Kabel direkt angeschlossen. Das läuft nun so seit Freitag ohne fehler oder Reset etc. So wie es sein sollte. Ich denke nun auch das es etwas mit den Störungen zu tun haben muss. Ich frage mich nur warum dies genau nur die Onewire Bricklets betrifft. Sind diese besonders empfindlich? Habe ja sogar geschirmte Kabel verwendet. Ich habe bei der Steuerung viele Module verbaut. Grob sieht das so aus: RPI 4 mit HAT 3x IO16 Bricklet 1x Industrial OUT 1x LCD 1x Rotary Encoder 2x Temperature Bricklet 1x Humidity Bricklet 1x Master Brick 1x StepDown Brick 3x Onewire Bricklet plus Isolator Bricklet Bei keinem anderen Bricklet habe ich Probleme und die Steuerung ist auf ca. 1m² am selben Ort platziert. Zusätzlich sind noch Relais verbaut aber diese sind alle entstört. Als weiteren Versuch habe ich gestern Abend noch die ganzen Onewire Bricks ca. 0,5m an das andere Ende der Montageplatte montiert. Mal schauen ob das etwas ändert. Auch habe ich noch einen 100Ohm Widerstand in Serie zum Datenpin eingefügt sowie den Pullup mit einem 1k8 Ohm Widerstand ingesammt auf ca. 1k verringert sowie einen 22k Pulldown eingefügt. Hättest du eine Idee wie ich den Bus entstören könnte? Grüße Markus
  9. Hallo, vielen Dank für deine Antwort. 1.) Bei einem ausgefallenen Bricklet(also keine LED leuchtet) liegt am Kondensator ca. 3.3V an und an Pin 1 und 2 vom Brickletstecker 5V. Also Strom müsste daher noch da sein. 3.) Wie könnte ich den Datenpin schützen? Welche Störungen könnten das sein. Gehen dann beide LEDs aus? Es sind schon Kabel in der Nähe die zu Pumpen oder auch Mischer Motoren laufen. Das ganze ist eine Heizungssteuerung/Anlagensteuerung. Größte induktive Last in der nähe ist nur eine Wärmepumpe. Das habe ich so nun versucht. Die LEDs bleiben trotz Einstellung "on" aus. Was bedeutet das die der Datenpin geschützt ist? Vielen Dank für deine Hilfe. Viele Grüße Markus
  10. Ich habe nun noch den Versuch gestartet die Sensoren über eine exteren Stromversorgung zu betreiben. Leider wieder ohne Erfolg. Es passiert nun öfter das bei manchen Onewire Bricklets die LEDs ausgehen und dann kein Verbindung mehr besteht also weder über den Brickviewer noch sonnst wie. Auch ein Reset ist nicht mehr über Software möglich. Es hilft wirklich nur das Ab und Anstecken vom Bricklet selbst. Dann funktioniert es wieder "normal". Wie kann soetwas passieren. Oder was muss dazu passieren? Ich habe aktuell versucht einen Workaround zu bauen indem ich die Externe Spannungsversorgung bei einem Fehler Ab und Anschalte damit ich die Sensoren wieder zum reden bewegen kann. Das hilft mir aber nichts wenn die Bricklets tot sind und ein händisches Ab und Anstecken benötigen. Hier noch ein Bild wo man schön sieht das zwei der drei Bricklets tot sind und händisch wiederbelebt werden müssen. Es Spielt dabei keine Rolle wie viele Sensoren angeschloßen sind. Es muss also etwas mit der Kabellänge zu tun haben. Induktive Lasten werden keine in der Nähe geschaltet. Aber sind 2 Sensoren mit vielleicht ingesamt 25m Kabel wirklich zu viel? Ich habe nun meine ganze Steuerung auf Tinkerforge Module aufgebaut. Alles funktioniert super bis auf diese sch*** Onewire Sensoren. Es muss doch eine Lösung für das Problem geben. Ich würde wirklich nur sehr ungern wieder andere Hardware kaufen. Aber ich bin verzweifelt.
  11. Hallo, leider habe ich immer noch keine Lösung für mein Problem finden können. Es hat sich aber trotzdem einiges geändert und ein paar Erkenntnisse konnte ich noch gewinnen. Ich habe herausgefunden das meine Sensoren Counterfit Sensoren sind. Also keine Originalen von Maxim/Dallas. Es gibt hier ein super Projekt: https://github.com/cpetrich/counterfeit_DS18B20 Ich habe gar nicht gewusst das es "Fake" Sensoren gibt 😅 Über die Arduino Sketches konnte ich meine Sensoren klassifizieren. Ich hatte Fake Sensoren der Klasse B2. Ich habe mir nun Original Sensoren besorgt und alle Sensoren ausgetauscht. Jetzt sind nur mehr Originale DS18B20+ von Maxim verbaut. Das Problem ist aber leider immer noch da. Auch wenn es sich etwas geändert hat. Es passiert jetzt eigentlich nur mehr das nach ein paar Stunden/Tagen plötzlich auf dem Bus keine Sensoren mehr gefunden werden und vom Bricklet "Bussy" kommt. Es hilft dann eben ein reset vom Bricklet oder aber auch das Aus/An stecken vom Bricklet selbst. Was ich auch versucht habe und weiß, dass es funkioniert ist. Das Ab und Anklemmen der Sensoren. Also ohne das Bricklet zu reseten oder abzustecken. Dann funkioniert es wieder. Es hängt also irgendwie mit dem reseten der Sensoren zusammen. Nach etwas suchen bin ich noch auf den "latch up" effekt gestoßen. Aber eine Lösung habe ich nicht finden können. https://de.wikipedia.org/wiki/Latch-Up-Effekt Ich würde mich wirklich sehr über Tips oder Hilfe bei meinem Problem freuen. Ich möchte nur einen stabilen OneWire Bus haben. Ich habe inzwischen noch Hardwaretechnisch folgendes geändert. Alles 3 Polige geschirmte Kabel. Auch bei den Sensoren. 3 Onewire Bricklets mit Isolator Bricklet sowie ein Masterbricklet mit eigenem Stepdown Pro Bricklet nur mehr einen Onewire Verteiler. Somit ist die Sensor Aufteilung so: 1 Bricklet --> direkter Verteiler mit 6x Onewire Sensoren mit je. 1,5m Kabel zusätzlich 1x Pullup mit 4k7 2 Bricklet --> 10m Zuleitung zum Verteiler 9x Onewire Sensoren mit je 1,5m Kabel zusätzlich 1x Pullup mit 4k7 plus 1x Pulldown 22k und 10nF Kondensator im Verteiler 3 Bricklet --> 12m Zuleitung zum Verteiler 2x Onewire Sensoren mit je 3,5m Kabel zusätzlich 1x Pullup mit 4k7 Leider passiert es bei jedem der Bricklets das der Bus ausfällt bzw. es zu Fehlern kommt. Ich weiß nun wirklich nicht mehr was ich noch probieren könnte. Was mir noch aufgefallen ist. Hin und wieder kommt es vor das eines der Onewire Bricklets sich verabschiedet. Es leuchtet dann kein LED mehr und auch ist es per Software nicht mehr erreichbar. Weder im Brickviewer noch sonst wie. Es hilft dann nur das ab und wieder anstecken um es wieder erreichbar zu machen. Hier ein Bild: Ich würde mich wirklich sehr freuen eine Rückmeldung bzw. Tips/Hilfe zu bekommen. 😃 Danke Grüße Markus
  12. Normal ist es so das unter raspian(debian) der Befehl "python" auf die Version 2.* von python zeigt und der Befehl "python3" auf die Version 3.* von python zeigt, genau wie mit "pip" und "pip3". Das kann man zwar ändern ist aber nach dem frischen installieren so. Über die local.rc Datei müsstest du also auch "python3" anstatt python schreiben wenn du das script mit python3 starten möchtest. Schau mal hier: rc.local - Raspberry Pi Documentation Und unter systemd ist das ähnlich. systemd - Raspberry Pi Documentation Grundsätzlich würde ich dir dazu raten systemd zu verwenden dann kannst du dein Programm mit systemctl start bzw. stop etc. steuern. Virtualenvironments kannst du hier nachlesen: Python Virtual Environments: A Primer – Real Python Kurz: Damit kannst du deine eigene Laufzeitumgebung unabhängig vom global installiertem python erstellen.
  13. Wie startest du das script? Mit python3 "scriptname.py" Verwendest du eine Virtualenvironment? Wenn du den Python Interpreter mit python3 startest und dann in die interaktive shell dein import eingibst kommt dann der gleiche Fehler? Es macht einen Unterschied ob du mit pip(für python version 2.*) oder mit pip3(für python version 3.*) die bindings installierst. Vielleicht hast du da etwas verwechselt? Grüße Markus
  14. Hallo Max Mustermann ... ein paar kleine Anmerkungen: 1.) Hast du die tinkerforge bindings installiert? pip3 install tinkerforge --> für den Raspi 2.) Es ist meiner Erfahrung nach nicht optimal mit input in python zu warten wenn du auch keinen Input erwartet also in deinem Fall da du dies ja als deamon laufen lassen möchtest. Es würde sich sowas anbieten: import threading # Anstatt input waiting = threading.Event() waiting.wait() 3. Würde ich dir empfehlen deinen Code eventuell auf den Robusten Ansatz umzustrukturieren um Probleme zu vermeiden. Grüße Markus
  15. Da ich eigentlich so gut wie alles in Python programmiere ist meine Antwort jetzt vielleicht etwas python spezifisch. Müsste aber in C genauso möglich sein. Es gibt hier natürlich wie immer mehrere Möglichkeiten deine Anforderung zu lösen. Möglich wäre z.B.: Du erstellst dir eine Klasse Dosierung wobei nun jede Pumpe eine Instanz bzw. ein Objekt der Klasse wird. Du baust dir eine Schleife welche immer wieder alle Pumpen überprüft und führst diese regelmäßig in deinem Programm aus, ob die gewünschte Menge gefördert und die Zeit schon abgelaufen ist für das nächste Intervall. Zum Beispiel könnte ein Attribute die Pausenzeit definieren welche bei den Intervallen eingehalten wird. Alternativ könntest du jetzt natürlich auch einen eigenen Thread erzeugen der nur alle Pumpen prüft und diese entsprechend einstellt. Oder du erzeugst pro Pumpe einen Thread was dann beim erzeugen der Objekte möglich ist. Würde ich bei vielen Pumpen aber eher davon abraten. Vielleicht erklärst du mal was genau du dir schon überlegt hast? Ein Thread ist wie ein Task den du auslagern kannst welcher unabhängig von deinem main abgearbeitet wird(parallel). Kann hilfreich sein. Bzgl. Thread hier ein Link: https://stackoverflow.com/questions/266168/simple-example-of-threading-in-c Sowie hier noch ein Link der dich auch interessieren könnte:
×
×
  • Create New...