Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. Druckmessung

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Druckmessung

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
118 Beiträge 9 Kommentatoren 17.6k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • ThisoftT Offline
    ThisoftT Offline
    Thisoft
    schrieb am zuletzt editiert von
    #65

    Richtig - defekt ist (fast) nie was. Kaum macht man es richtig, schon geht es ;)

    Freut mich dass das erstmal wieder geht.

    Die Kalibration bekommen wir hin im Arduino - natürlich ohne Genauigkeitsanforderungen von mbar ;) Wenn jetzt bei 1bar der Wert 159 ist und wir bei einer Referenzspannung von 5V den Wert 1024 haben dann heißt das dass der Sensor bei 1bar ca.0,77 V liefert. Wir können jetzt die interne Referenzspannung noch auf 3,3V oder sogar 1,1V heruntersetzen. Wobei mir das mit 1,1V etwas riskant ist, dann müsstest du sicher sein dass nie mehr als 1,5bar anliegen sonst Arduino-RIP. Was ist denn der höchste Druck den deine Pumpe so schaffen könnte?

    22 HM-Geräte; PivCCU2 auf RasPi

    ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

    1 Antwort Letzte Antwort
    0
    • HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #66

      …und es kommt wie es kommen muss :(

      ich wollte gerade den letzten Schliff setzen und dir die notwendigen Daten liefern und schalte von hier oben nochmal die Pumpe an....

      Eigentlich genau dafür, wofür das ganze sein soll.

      Bei der Montage des Sensors incl- T-Stück mit der heißen Nadel ist irgendwo ein "Leck" .

      Nach dem Abschalten der Pumpe fließt das Wasser vom Dach der Garage aus dem Kollektor über die Pumpe zurück in den Pool (oder Teile davon und der Korb im Skimmer wird hochgedrückt und verkantet sich.

      Wenn jetzt nicht genug Wasser nachkommt weil die Skimmerklappe nicht richtig öffnen kann läuft die Pumpe trocken, aber...

      Wert bei Pumpe aus: 99

      Wert bei Pumpe an: im Moment 159

      Eben sprang der Druck zwischen 104 und 255!!

      das sind die Moment, in denen die Pumpe wieder "packt", die Nadel des Messinstruments zittert da nur ganz kurz.

      Schnell noch alles mögliche mit Teflonband nachgedichtet und einen Stein in den Skimmerkorb gelegt und hoffen, dass es durchläuft.

      Hier mal ein Bild (vor dem Nachdichten):
      144_drucksensor_duino_04.jpg

      EDIT:

      und in ioBroker:
      144_pooldruck.jpg
      Wobei da jetzt nur ein Faktor und keine Geradengleichung drin ist. Nur bei stabilem Normdruck stimmt der Wert, bei 0 bar zeit es 0,64 bar an ;-)

      Gruß

      Rainer

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      1 Antwort Letzte Antwort
      0
      • ThisoftT Offline
        ThisoftT Offline
        Thisoft
        schrieb am zuletzt editiert von
        #67

        Au weia - na hoffentlich bleibt das jetzt alles dicht und funktioniert wenn du 4 Tage nicht da bist!

        Ich wollte dich da zu nichts hetzen - sorry…

        Nun zu den Werten:

        • bei Pumpe aus, also kein Druck bedeutet der Wert 99 umgerechnet 0,5V - das entspricht exakt der Angabe im Datenblatt

        • bei Pumpe an, also 1bar der Wert von 160 scheint ja relativ stabil zu sein

        • wenn der Wert bei Druckspitzen auf bzw. über 255 geht dann bedeutet das dass der Sensor wohl gar nicht so schlecht ist und man sich wohl doch einigermaßen auf die Angaben lt.Datenblatt verlassen kann..

        Nun mal theoretisch: lt. Datenblatt misst der Sensor von 0-1,2Mpa, also 0-12bar und gibt dementsprechend eine Spannung von 0,5-4,5V aus das bedeutet letztlich 4V/12bar = 0,333V/bar. Der gelesene Wert im Arduino entspricht 1024/5V = 204/V. Dementsprechend 68/bar.

        Somit ergibt sich die folgende Formel:

        Druck in bar = (Analogwert - 102)/68

        Womit der Messwert 160 einen Druck von 0,85 bar bedeuten würde... Naja, ich denke da ist weder das Manometer noch der Sensor supergenau ;)

        Das mit Spannungsreferenz runterschalten geht beim Arduino Nano allerdings nicht so einfach wie ich gerade nachgelesen habe, da bietet wohl nur der Mega von Haus aus mehrere Möglichkeiten. Hier wäre nur die Möglichkeit einen externen Spannungsteiler als Referenz anzuschalten. Aber ich denke wir lassen das für's Erste, um zu erkennen ob kein - wenig -viel Druck anliegt sollte die vorhandene Konfiguration ausreichend sein.

        Ich schreibe dann die Tage mal noch die Formel in den Sketch.

        Vorerst wünsche ich dir eine erfolgreiche Dienstreise und ein dichtes Pumpensystem ;)

        22 HM-Geräte; PivCCU2 auf RasPi

        ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

        1 Antwort Letzte Antwort
        0
        • HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #68

          @Thisoft:

          Ich wollte dich da zu nichts hetzen - sorry… `
          Nö, ich wollte es bis heute fertig haben.

          @Thisoft:

          Naja, ich denke da ist weder das Manometer noch der Sensor supergenau `
          gut ich hätte jetzt anders gerechnet um auf die Werte des Manometers zu kommen:

          Druck = (Messwert -99)/61

          mit den Werten eher scheingenau.

          Allerdings könnte auch das Manometer schon hin sein, ich bekomme bur noch ganz selten Werte im gelben Bereicht, früher ging es bis ins rote. Außerdem steht es bei "aus" auch noch bei ca. 0,2bar.

          Vielleicht hol ich da mal ein neues.

          Gruß und DANK!

          Rainer

          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          1 Antwort Letzte Antwort
          0
          • GoerschG Offline
            GoerschG Offline
            Goersch
            schrieb am zuletzt editiert von
            #69

            Hab ein bisschen quergelesen.

            Ihr müsst die Ausgänge des Arduino negieren. Dann passen die Werte des Analog Eingangs im Arduino und die in der CCU zusammen.

            Bei dem Modus des ELV Moduls: Ich würde Modus 4 mit 0.5s oder Modus 5 mit 1 Sekunde wählen.

            Auch wenn die Pumpe nicht läuft, steht die Wassersäule im Rohr. D.h 1m Wassersäule = 0.1bar.

            1 Antwort Letzte Antwort
            0
            • HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #70

              Danke!
              @Goersch:

              Ihr müsst die Ausgänge des Arduino negieren. `
              :lol:

              ich kann das nicht, dafür habe ich die Eingänge beim HM-Modul negiert.

              @Goersch:

              Ich würde Modus 4 mit 0.5s oder Modus 5 mit 1 Sekunde wählen. `
              ich hatte Modus5 mit 1 Sekunde genommen. - passt also!

              @Goersch:

              Auch wenn die Pumpe nicht läuft, steht die Wassersäule im Rohr. D.h 1m Wassersäule = 0.1bar. `
              Das ist korrekt; im dynamischen zustand hebt sich der Vor und Rücklauf auf, aber im statischen zustand sicher nicht ;-)

              bei mir geht es etwa 5,5 Meter hoch auf die Garage = 0,55bar, im Moment zeigt der Sensor 0,62 bar an.

              Es ist noch (fast) keinerlei Korrektur angewandt.

              Gruß

              Rainer

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              1 Antwort Letzte Antwort
              0
              • ThisoftT Offline
                ThisoftT Offline
                Thisoft
                schrieb am zuletzt editiert von
                #71

                Hallo Rainer,

                jetzt hatte ich dich schon fast ein wenig vergessen - sorry.

                Hier erstmal der Sketch mit der Umrechnungsformel drin:

                ! int sensorPin = A7; int firstDigitPIN = 2; int sensorValue = 0; int DruckValue = 0; ! const int Zykluszeit = 10; //Messintervall in Sekunden const int Nullpunkt = 102; //dieser Analogwert entspricht 0 bar const int Messfaktor = 68; //durch diesen Wert wird der Analogwert geteilt ! void sendValue(int intVal){ String binZahl; byte aktBit; for (int b = 0; b < 8; b += 1){ aktBit = bitRead(intVal, b); binZahl = aktBit + binZahl; digitalWrite(firstDigitPIN + b,(boolean) aktBit); } Serial.println("Binärwert = " + binZahl); Serial.println(""); } ! void setup() { Serial.begin(9600); for (int digitPIN = firstDigitPIN; digitPIN <= firstDigitPIN + 7; digitPIN += 1){ pinMode(digitPIN, OUTPUT); } Serial.println("Gestartet"); } ! void loop() { // read the value from the sensor: sensorValue = analogRead(sensorPin)/4; //weil der Arduino mit 10 bit Auflösung misst, wir aber nur 8 bit übertragen können Serial.println("Analogwert = " + (String) sensorValue); DruckValue = (sensorValue - Nullpunkt) / Messfaktor; sendValue(DruckValue); delay(Zykluszeit*1000); } !

                Ich habe die Umrechnungszahlen am Anfang als Constanten deklariert, so dass du die wenn du möchtest auch gerne anpassen kannst.

                Was das Negieren der Ausgänge betrifft denke ich kannst du das jetzt gerne so lassen dass du das im HM-Modul machst. Anderenfalls "kannst" du das bestimmt auch im Arduino-Sketch ;) Dafür wäre das Ausrufezeichen in der folgenden Zeile verantwortlich:

                 digitalWrite(firstDigitPIN + b,!(boolean) aktBit);
                

                Nun schau mal was du so für Werte erhältst und viel Spass beim Schwimmen :)

                22 HM-Geräte; PivCCU2 auf RasPi

                ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

                1 Antwort Letzte Antwort
                0
                • SchubiS Offline
                  SchubiS Offline
                  Schubi
                  schrieb am zuletzt editiert von
                  #72

                  Hat zwar etwas gedauert - ab jetzt ist der Test abgeschlossen.

                  <size size="150">Anleitung zur Druckmessung mit Tasmota.</size>

                  Benötigte Hardware:

                  • Wemos D1 mini (oder ähnliches)

                  • ADS1115 (A/D-Wandler)

                  • Drucksensor (z.B.: https://de.aliexpress.com/item/DC-5V-G1-4-Pressure-Sensor-Transmitter-Pressure-Transducer-1-2-MPa-174-PSI-For-Water/32656389610.html?spm=a2g0s.9042311.0.0.3da24c4dqtznBO)

                  Die Teile werden gemäß folgendem Schema zusammengeschlossen:
                  1904_unbenannt3.jpg

                  Beim Compilieren der Tasmota Firmware muss in der user_config.h die Unterstützung für den ADS1115 aktiviert werden!

                  (Und noch ganz wichtig - die neueste Version direkt von GITHUB nehmen - auch die 6.1.1a hat noch einen Bug mit dem die Messung nicht gelingt!)

                  • die beiden Schrägstriche in der angeführten Zeile wegnehmen!
                    1904_unbenannt.jpg
                    1904_unbenannt2.jpg

                  Wenn die Firmware (Tasmota) auf dem Modul ist (und natürlich die Einstellungen für WIFI und MQTT angepasst wurden) muss man noch die Anschlüsse für den ADS1115 angeben:

                  1904_unbenannt7.jpg

                  Nach einem Neustart sollten dann auf der Hauptseite die Werte der 4 Analogeingänge zu sehen sein:

                  1904_unbenannt5.jpg

                  (Wenn mir jemand erklären kann woher der dämliche Temperaturwert kommt wäre ich sehr dankbar - er stört aber nicht weiters)

                  Die angezeigten Werte müssen mit dem Faktor 0.0001875 mulipliziert werden um den wahren Spannungswert zu errechnen. - Das brauchen wir aber gar nicht, da es nur auf des Verhältnis zwischen EIngangsspannung (5V) und der Messspannung des Sensors ankommt.

                  Bei uns sind das A0 - Eingansspannung A1-Messspannung.

                  Man könnte hier aufhören und die Werte in ioBroker weiterverarbeiten - oder das ganze von Tasmot erledigen lassen:

                  Jetzt kommen die sogenannten Rules zum Einsatz:

                  Wir wechseln in die Console und tippen (kopieren ist besser) folgendes ein:

                  rule on System#Boot do backlog var1 30000; var3 -1 endon
                  on tele-ADS1115#A0 do backlog var1 %value%  endon
                  on tele-ADS1115#A1 do backlog scale3 %value%, 0, %var1%, 0, 1; sub3 0.1; mult3 13.33333; publish stat/TEST/Druck %var3% endon
                  

                  Der Teil publish stat/TEST/Druck kann den eigenen Vorlieben angepasst werden.

                  Danach noch die Regel aktivieren mit:

                  rule 1
                  

                  Hoffe es kann jemand brauchen - oder an die eigenen Bedürfnisse anpassen.

                  Sollte noch jemand Interesse an der Funktion der Rules haben, oder eine compilierte Version (mit ADS1115) benötigen bitte melden.

                  LG Schubi

                  / Synology DS716+ / Logitech Harmony Ultimate / Netatmo / ESP8266 / RPi 3 / 4* Möller Easy 820 / Lupusec XT2 Plus /

                  AphofisA M 2 Antworten Letzte Antwort
                  1
                  • HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #73

                    @Thisoft:

                    jetzt hatte ich dich schon fast ein wenig vergessen - sorry. `

                    Bad news first:

                    Das nette Teil hat mir meine gesamte HM lahmgelegt :(

                    gut geflasht - am Schreibtisch ohne Sensor 0 (Hurra!)

                    Angeklemmt - beim Versuch zu überprüfen blieb der Wert auf 0; bei der HM lief nichts mehr - WebUI kam nicht mehr hoch; über CuxD nachgesehen -> ReGa Crash!

                    neu gestartet -> gleiches Bild :(

                    Sensor abgeklemmt - CCU neu gestartet - lief; aber der Sensor war weg!?

                    Sensor neu angelernt -> CCU hing.

                    ich konnte noch kurz sehen, dass der Wert auf 255 stand.

                    Abgeklemmt -> lief wieder.

                    Angeklemmt 0 -> 255 -> 0 -> hing :cry:

                    Hast du eine Idee?

                    ich fürchte der sendet die Signale zu oft (durch die "Kalibrierung" zu hohe Spreizung und zu häufige Schwankungen??)

                    Dann muss ich ggf. den Mode wechseln.

                    Sollte es am Sketch liegen kann ich nichts dazu sagen.

                    Übrigens:

                    auch bei Pumpe aus und anschließendem Anklemmen kommt 0 -> 255 -> 0

                    EDIT:

                    so sieht es mit offenem Eingang aus (Sensor abgeklemmt - der hängt noch am Filter)

                    Gestartet
                    Analogwert = 145
                    Binärwert = 00000000
                    
                    Analogwert = 255
                    Binärwert = 00000010
                    
                    Analogwert = 155
                    Binärwert = 00000000
                    
                    Analogwert = 227
                    Binärwert = 00000001
                    
                    Analogwert = 255
                    Binärwert = 00000010
                    
                    Analogwert = 163
                    Binärwert = 00000000
                    
                    Analogwert = 167
                    Binärwert = 00000000
                    
                    Analogwert = 253
                    Binärwert = 00000010
                    
                    Analogwert = 198
                    Binärwert = 00000001
                    
                    

                    EDIT2:

                    und so sieht es mit dem alten Sketch aus:

                    Gestartet
                    Analogwert = 893
                    Binärwert = 01111101
                    
                    Analogwert = 736
                    Binärwert = 11100000
                    
                    Analogwert = 753
                    Binärwert = 11110001
                    
                    Analogwert = 1023
                    Binärwert = 11111111
                    
                    Analogwert = 744
                    Binärwert = 11101000
                    
                    Analogwert = 634
                    Binärwert = 01111010
                    
                    Analogwert = 984
                    Binärwert = 11011000
                    
                    Analogwert = 803
                    Binärwert = 00100011
                    
                    

                    Ich weiß, dass man nicht mit offenen Eingängen arbeiten soll.

                    Aber vielleicht sollten wir mBar ausgeben, damit die Werte höher sind??

                    Gruß

                    Rainer

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    1 Antwort Letzte Antwort
                    0
                    • ThisoftT Offline
                      ThisoftT Offline
                      Thisoft
                      schrieb am zuletzt editiert von
                      #74

                      Hallo Rainer,

                      zuerst mal verwundert mich das ein wenig dass man durch "falsche" Werte mit denen man das Schnittstellenmodul füttert die gesamte HM zum Aufhängen bringen kann. Da ist wohl auch was noch nicht ganz ausgereift, zumal es in der Bedienungsanleitung keinen Hinweis auf Einschränkungen beim Wertebereich o.ä. gibt.

                      Zugegeben war der Sketch noch insofern unsauber dass evtl. negative Werte entstehen konnten. Darauf deutet auch hin dass in deinem Test die Binär- nicht zu den Analogwerten passten. Hier erstmal eine Korrektur:

                      ! ````
                      int sensorPin = A7;
                      int firstDigitPIN = 2;
                      int sensorValue = 0;
                      int DruckValue = 0;
                      ! const int Zykluszeit = 10; //Messintervall in Sekunden
                      const int Nullpunkt = 102; //dieser Analogwert entspricht 0 bar
                      const int Messfaktor = 68; //durch diesen Wert wird der Analogwert geteilt
                      ! void sendValue(int intVal){
                      String binZahl;
                      byte aktBit;
                      for (int b = 0; b < 8; b += 1){
                      aktBit = bitRead(intVal, b);
                      binZahl = aktBit + binZahl;
                      digitalWrite(firstDigitPIN + b,!(boolean) aktBit);
                      }
                      Serial.println("Binärwert = " + binZahl);
                      Serial.println("");
                      }
                      ! void setup() {
                      Serial.begin(9600);
                      for (int digitPIN = firstDigitPIN; digitPIN <= firstDigitPIN + 7; digitPIN += 1){
                      pinMode(digitPIN, OUTPUT);
                      }
                      Serial.println("Gestartet");
                      }
                      ! void loop() {
                      // read the value from the sensor:
                      sensorValue = analogRead(sensorPin)/4; //weil der Arduino mit 10 bit Auflösung misst, wir aber nur 8 bit übertragen können
                      Serial.println("Analogwert = " + (String) sensorValue);
                      DruckValue = (sensorValue - Nullpunkt);
                      if (DruckValue < 0) DruckValue = 0;
                      DruckValue = (int) DruckValue / Messfaktor * 10;
                      Serial.println("Druckwert in 0.1bar = " + (String) DruckValue);
                      sendValue(DruckValue);
                      delay(Zykluszeit*1000);
                      }

                      
                      Ich hab den Ausgabewert jetzt mal in Zehntelbar gerechnet. Dein Einwand ist richtig, aber mBar geht nicht da die größte mit 8bit darstellbare Zahl 255 ist und 0,25bar ein wenig knapp wäre ;-)
                      
                      Probier ruhig erstmal mit offenen Eingängen aus, das macht in diesem Fall nix - hast du wenigstens gleich realisitsch schwankende Werte ;)
                      
                      Dass der Arduino die Daten zu oft sendet kann ich mir eigentlich nicht vorstellen - er sendet ja nur aller 10s.
                      
                      Falls sich mit dem geänderten Sketch jetzt die HM wieder aufhängt müssen wir erstmal rauskriegen was das Modul bzw. die HM dabei übelnimmt…
                      
                      Gruß
                      
                      Thilo

                      22 HM-Geräte; PivCCU2 auf RasPi

                      ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

                      1 Antwort Letzte Antwort
                      0
                      • HomoranH Nicht stören
                        HomoranH Nicht stören
                        Homoran
                        Global Moderator Administrators
                        schrieb am zuletzt editiert von
                        #75

                        @Thisoft:

                        er sendet ja <size size="150">nur</size> aller 10s. `
                        und das Sendemodul dann wenn der Wert 1 Sekunde stabil ist.

                        Das darf aber wegen des DC nur etwa alle drei Minuten senden (oder entsprechend viele Pakete pro Stunde).

                        Ich fürchte, dass das quittierungspflichtige Pakete sind (allerdings war der DC der CCU nicht hochgegangen)

                        Im Moment ist dein Sketch v1 drauf und alles läuft rund.

                        Ich werde gleich mal wieder in den Garten gehen und den Arduino neu flashen.

                        @Thisoft:

                        zuerst mal verwundert mich das ein wenig dass man durch "falsche" Werte mit denen man das Schnittstellenmodul füttert die gesamte HM zum Aufhängen bringen kann. `
                        Das hatte ich auch gedacht und deswegen das zu häufige Senden als Ursache vermutet. Die CCU ist schließlich kein Arduino ;-)

                        Es ist allerdings auch nicht auszuschließen, dass es wegen unplausibler Werte (Range > 8Bit, aber das hast du ja abgefangen) zu den Hängern kam

                        Danke für deine Mühe

                        Rainer

                        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                        1 Antwort Letzte Antwort
                        0
                        • HomoranH Nicht stören
                          HomoranH Nicht stören
                          Homoran
                          Global Moderator Administrators
                          schrieb am zuletzt editiert von
                          #76

                          Dein V3 zeigt jetzt:

                          Gestartet
                          Analogwert = 198
                          Druckwert in 0.1bar = 10
                          Binärwert = 00001010
                          
                          Analogwert = 158
                          Druckwert in 0.1bar = 0
                          Binärwert = 00000000
                          
                          Analogwert = 229
                          Druckwert in 0.1bar = 10
                          Binärwert = 00001010
                          
                          Analogwert = 250
                          Druckwert in 0.1bar = 20
                          Binärwert = 00010100
                          
                          Analogwert = 237
                          Druckwert in 0.1bar = 10
                          Binärwert = 00001010
                          
                          Analogwert = 174
                          Druckwert in 0.1bar = 10
                          Binärwert = 00001010
                          
                          Analogwert = 183
                          Druckwert in 0.1bar = 10
                          Binärwert = 00001010
                          
                          Analogwert = 250
                          Druckwert in 0.1bar = 20
                          Binärwert = 00010100
                          
                          

                          @Thisoft:

                          dass in deinem Test die Binär- nicht zu den Analogwerten passten `
                          Das sieht jetzt schon mal besser aus.

                          aber die Werte sind trotzdem IMHO nicht brauchbar.

                          da gibt es nur 10 (0001010) und 20 (00010100), keine Werte dazwischen :(

                          Ich bau das Teil erst mal nicht ein, sondern lass es hier auf dem Schreibtisch (und versuche in der Zwischenzeit mal den Sketch zu verstehen)

                          EDIT:

                          Mutig ich bin ;-)

                          Wäre es nicht besser statt

                          DruckValue = (int) DruckValue / Messfaktor * 10;
                          

                          zu machen:

                          DruckValue = (int) DruckValue * 10 / Messfaktor;
                          

                          nee, hier gilt das Kommutativgesetz :(

                          Aber wie bekommt man die Stufen raus?

                          Gruß

                          Rainer

                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          1 Antwort Letzte Antwort
                          0
                          • ThisoftT Offline
                            ThisoftT Offline
                            Thisoft
                            schrieb am zuletzt editiert von
                            #77

                            Ja - natürlich :oops: Das kommt davon wenn man das schnell nebenher zusammenschreibt ohne zu Testen. Hoffentlich hab ich jetzt keine neuen Faselfehler drin… Ist jetzt nicht der gesamte Sketch sondern nur die Loop-Routine, bekommst du hin - oder?

                            void loop() {
                              // read the value from the sensor:
                              sensorValue = analogRead(sensorPin)*10; 
                              Serial.println("Analogwert = " + (String) sensorValue);
                              DruckValue = (sensorValue - (Nullpunkt * 10));
                              if (DruckValue < 0) DruckValue = 0;
                              DruckValue = (int) DruckValue / Messfaktor / 10;
                              Serial.println("Druckwert in 0.1bar = " + (String) DruckValue);
                              sendValue(DruckValue);
                              delay(Zykluszeit*1000);
                            }
                            

                            Übrigens - wenn der Arduino seltener senden soll kannst du das ganz einfach machen indem du im Sketch die Variable "Zykluszeit" änderst (steht ziemlich am Anfang…)

                            22 HM-Geräte; PivCCU2 auf RasPi

                            ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

                            1 Antwort Letzte Antwort
                            0
                            • HomoranH Nicht stören
                              HomoranH Nicht stören
                              Homoran
                              Global Moderator Administrators
                              schrieb am zuletzt editiert von
                              #78

                              @Thisoft:

                              bekommst du hin - oder? `
                              Denke ich schon - Danke!

                              @Thisoft:

                              Übrigens - wenn der Arduino seltener senden soll kannst du das ganz einfach machen indem du im Sketch die Variable "Zykluszeit" änderst (steht ziemlich am Anfang…) `
                              Habe ich gesehen, aber das könnte man auch über das Sendemodul konfigurieren, dann müssten aber die Signale im Arduino negiert werden, da es nicht alle Varianten für high oder low active gibt.

                              ~~![](</s><URL url=)<link_text text="download/file.php?id=30636&mode=view">https://forum.iobroker.net/download/file.php?id=30636&mode=view</link_text>" />

                              habe bisher Mode5 und jetzt auf Mode 7 gestellt

                              ggf dann aber doch über den D030 des Moduls, der mit dem D10 des Arduino verbunden ist, dann kann man triggern.

                              Im MOment ist der DC der CCU auf 97% :(

                              Die neuen Werte sehen so aus:

                              Gestartet
                              Analogwert = 9990
                              Druckwert in 0.1bar = 13
                              Binärwert = 00001101
                              
                              Analogwert = 6520
                              Druckwert in 0.1bar = 8
                              Binärwert = 00001000
                              
                              Analogwert = 6670
                              Druckwert in 0.1bar = 8
                              Binärwert = 00001000
                              
                              Analogwert = 7340
                              Druckwert in 0.1bar = 9
                              Binärwert = 00001001
                              
                              Analogwert = 8920
                              Druckwert in 0.1bar = 11
                              Binärwert = 00001011
                              
                              Analogwert = 9510
                              Druckwert in 0.1bar = 12
                              Binärwert = 00001100
                              
                              Analogwert = 9840
                              Druckwert in 0.1bar = 12
                              Binärwert = 00001100
                              
                              

                              in der CCU steht immer noch 255, kann aber am DC liegen, oder dasss mode7 eben wegen high active nichts bringt

                              Gruß

                              Rainer~~

                              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                              1 Antwort Letzte Antwort
                              0
                              • ThisoftT Offline
                                ThisoftT Offline
                                Thisoft
                                schrieb am zuletzt editiert von
                                #79

                                Mit Mode 7 kann momentan normalerweise nichts übertragen werden deshalb wäre mir die 255 jetzt schon plausibel.

                                Allerdings ist der DC von 97% überhaupt nicht plausibel :(

                                Ich hab jetzt mal die Unterstützung für den Dateneingang an D10 mit eingebaut. Außerdem sollte beim Starten erstmal eine 0 übertragen werden.

                                Die Werte innerhalb des Arduino sehen ja jetzt gut aus…

                                ! ````
                                int sensorPin = A7;
                                int firstDigitPIN = 2;
                                int sendPIN = 10;
                                int sensorValue = 0;
                                int DruckValue = 0;
                                ! const int Zykluszeit = 10; //Messintervall in Sekunden
                                const int Nullpunkt = 102; //dieser Analogwert entspricht 0 bar
                                const int Messfaktor = 68; //durch diesen Wert wird der Analogwert geteilt
                                ! void sendValue(int intVal){
                                String binZahl;
                                byte aktBit;
                                for (int b = 0; b < 8; b += 1){
                                aktBit = bitRead(intVal, b);
                                binZahl = aktBit + binZahl;
                                digitalWrite(firstDigitPIN + b,!(boolean) aktBit);
                                }
                                digitalWrite(sendPIN, HIGH);
                                delay(100);
                                digitalWrite(sendPIN, LOW);
                                Serial.println("Binärwert = " + binZahl);
                                Serial.println("");
                                }
                                ! void setup() {
                                Serial.begin(9600);
                                for (int digitPIN = firstDigitPIN; digitPIN <= firstDigitPIN + 7; digitPIN += 1){
                                pinMode(digitPIN, OUTPUT);
                                digitalWrite(digitPIN,LOW);
                                }
                                pinMode(sendPIN, OUTPUT);
                                digitalWrite(sendPIN, HIGH);
                                delay(100);
                                digitalWrite(sendPIN, LOW);
                                Serial.println("Gestartet");
                                }
                                ! void loop() {
                                // read the value from the sensor:
                                sensorValue = analogRead(sensorPin)/4; //weil der Arduino mit 10 bit Auflösung misst, wir aber nur 8 bit übertragen können
                                Serial.println("Analogwert = " + (String) sensorValue);
                                DruckValue = (sensorValue - Nullpunkt);
                                if (DruckValue < 0) DruckValue = 0;
                                DruckValue = (int) DruckValue / Messfaktor * 10;
                                Serial.println("Druckwert in 0.1bar = " + (String) DruckValue);
                                sendValue(DruckValue);
                                delay(Zykluszeit*1000);
                                }

                                22 HM-Geräte; PivCCU2 auf RasPi

                                ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

                                1 Antwort Letzte Antwort
                                0
                                • HomoranH Nicht stören
                                  HomoranH Nicht stören
                                  Homoran
                                  Global Moderator Administrators
                                  schrieb am zuletzt editiert von
                                  #80

                                  Habe jetzt einiges herumgespielt und für mich ist für heute erst mal Schluss.

                                  Ich bin erst einmal zu folgendem Schluss gekommen:

                                  • der erhöhte DC hat aktuell wohl nichts mit dem Sensor zu tun, ich habe diesen jetzt an eine Testumgebung gehängt, an der ich allerdings den DC nicht monitoren kann :(

                                    • ob das Gerät der Auslöser (wie auch immer) war kann ich nicht nachvollziehen, ich hoffe nur dass sich der DC in meiner produktiven Umgebung irgendwann einbekommt. Gestartet ist er exakt mit den Problemen mit dem Sensor. ab da stieg er stetig bis auf 97.
                                  • du scheinst die Negierung der Pins gemacht zu haben, also führt mein Setting mit erneuter Negierung zu 255 statt 0 ;-)

                                  • in deinem letzten Sketch hast du die Änderung, die ich mit deinem Snippet in dem vorletzten eingebaut hab nicht drin gehabt, da kamen wieder nur 0, 10 und 20 raus.

                                  • im angeschlossenen Zustand kam nur noch 0; da muss ich wohl noch mit den Faktoren spielen.

                                    • und mit den verschiedenen Modi.
                                    • einerseits soll ziemlich schnell ein Leck/Luft detektiert werden, andererseits brauche ich bei minimalen Abweichung nicht alle 10 Sec. einen Wert.

                                  Danke nochmals bis hier hin

                                  Rainer

                                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                  1 Antwort Letzte Antwort
                                  0
                                  • ThisoftT Offline
                                    ThisoftT Offline
                                    Thisoft
                                    schrieb am zuletzt editiert von
                                    #81

                                    @Homoran:

                                    Habe jetzt einiges herumgespielt und für mich ist für heute erst mal Schluss.

                                    Ich bin erst einmal zu folgendem Schluss gekommen:

                                    • der erhöhte DC hat aktuell wohl nichts mit dem Sensor zu tun, ich habe diesen jetzt an eine Testumgebung gehängt, an der ich allerdings den DC nicht monitoren kann :(

                                      • ob das Gerät der Auslöser (wie auch immer) war kann ich nicht nachvollziehen, ich hoffe nur dass sich der DC in meiner produktiven Umgebung irgendwann einbekommt. Gestartet ist er exakt mit den Problemen mit dem Sensor. ab da stieg er stetig bis auf 97. `

                                    Ja - wäre gut zu wissen was da los war…

                                    ` > - du scheinst die Negierung der Pins gemacht zu haben, also führt mein Setting mit erneuter Negierung zu 255 statt 0 ;-)

                                    • in deinem letzten Sketch hast du die Änderung, die ich mit deinem Snippet in dem vorletzten eingebaut hab nicht drin gehabt, da kamen wieder nur 0, 10 und 20 raus. `

                                    Stimmt - das war eher aus Versehen mit passiert :roll:

                                    ` > - im angeschlossenen Zustand kam nur noch 0; da muss ich wohl noch mit den Faktoren spielen.

                                      • und mit den verschiedenen Modi. `

                                    Die Modi sollten m.E. jetzt gar nicht mehr so entscheidend sein wo der D10 mit angesteuert wird..

                                    Um die Werte bzw. Faktoren in dir richtige Richtung zu rücken wäre es gut wenn du erstmal den Seriellen Monitor auf einem Lappi oder so mitlaufen lassen könntest…

                                    > - - einerseits soll ziemlich schnell ein Leck/Luft detektiert werden, andererseits brauche ich bei minimalen Abweichung nicht alle 10 Sec. einen Wert.
                                    Ich habe jetzt noch einen Parameter "MeldeDifferenz" eingebaut. Um diesen Wert (in Zehntelbar) muss sich der neue Messwert vom letzten übertragenen unterscheiden damit der neue Wert gesendet wird.

                                    ! ````
                                    int sensorPin = A7;
                                    int firstDigitPIN = 2;
                                    int sendPIN = 10;
                                    int sensorValue = 0;
                                    int DruckValue = 0;
                                    int lastValue = 0;
                                    int MeldeDifferenz = 5;
                                    ! const int Zykluszeit = 10; //Messintervall in Sekunden
                                    const int Nullpunkt = 102; //dieser Analogwert entspricht 0 bar
                                    const int Messfaktor = 68; //durch diesen Wert wird der Analogwert geteilt
                                    ! void sendValue(int intVal){
                                    String binZahl;
                                    byte aktBit;
                                    for (int b = 0; b < 8; b += 1){
                                    aktBit = bitRead(intVal, b);
                                    binZahl = aktBit + binZahl;
                                    digitalWrite(firstDigitPIN + b,!(boolean) aktBit);
                                    }
                                    digitalWrite(sendPIN, HIGH);
                                    delay(100);
                                    digitalWrite(sendPIN, LOW);
                                    Serial.println("Binärwert = " + binZahl);
                                    Serial.println("");
                                    }
                                    ! void setup() {
                                    Serial.begin(9600);
                                    for (int digitPIN = firstDigitPIN; digitPIN <= firstDigitPIN + 7; digitPIN += 1){
                                    pinMode(digitPIN, OUTPUT);
                                    digitalWrite(digitPIN,LOW);
                                    }
                                    pinMode(sendPIN, OUTPUT);
                                    digitalWrite(sendPIN, HIGH);
                                    delay(100);
                                    digitalWrite(sendPIN, LOW);
                                    Serial.println("Gestartet");
                                    }
                                    ! void loop() {
                                    // read the value from the sensor:
                                    sensorValue = analogRead(sensorPin)10;
                                    Serial.println("Analogwert = " + (String) sensorValue);
                                    DruckValue = (sensorValue - (Nullpunkt * 10));
                                    if (DruckValue < 0) DruckValue = 0;
                                    DruckValue = (int) DruckValue / Messfaktor / 10;
                                    Serial.println("Druckwert in 0.1bar = " + (String) DruckValue);
                                    if (abs(DruckValue - lastValue) > MeldeDifferenz){
                                    sendValue(DruckValue);
                                    lastValue = DruckValue;
                                    };
                                    delay(Zykluszeit
                                    1000);
                                    }

                                    
                                    Dann für morgen viel Erfolg!
                                    
                                    Und - nichts zu Danken, du hast hier schon so viel geholfen, da hast du alle Hilfe verdient…
                                    
                                    Gruß
                                    
                                    Thilo

                                    22 HM-Geräte; PivCCU2 auf RasPi

                                    ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

                                    1 Antwort Letzte Antwort
                                    0
                                    • HomoranH Nicht stören
                                      HomoranH Nicht stören
                                      Homoran
                                      Global Moderator Administrators
                                      schrieb am zuletzt editiert von
                                      #82

                                      Damit ich schon mal nicht schlafen sondern grübeln kann:
                                      @Thisoft:

                                      wo der D10 mit angesteuert wird.. `

                                      Wie passiert das?

                                      • was löst das aus?

                                      • wie ist er active? (high/low)

                                      Bis morgen

                                      Rainer

                                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                      1 Antwort Letzte Antwort
                                      0
                                      • ThisoftT Offline
                                        ThisoftT Offline
                                        Thisoft
                                        schrieb am zuletzt editiert von
                                        #83

                                        Das passiert indem der D10 jeweils kurz auf HIGH und 100ms später wieder auf LOW gesetzt wird:

                                          digitalWrite(sendPIN, HIGH);
                                          delay(100);
                                          digitalWrite(sendPIN, LOW);
                                        

                                        das passiert erstmal in der void setup() und dann wieder in void sendValue() nachdem die 8bit auf den neuen Wert gesetzt wurden.

                                        Somit ist der D10 also im Normalfall auf LOW und wird nach einer Aktualisierung des Wertes kurz auf HIGH und dann wieder auf LOW gesetzt so dass da jeweils eine steigende und eine fallende Flanke ausgelöst wird.

                                        22 HM-Geräte; PivCCU2 auf RasPi

                                        ioBroker-Multihost; Ubuntu-Master auf Intel-Atom und 3 RasPi-Clients

                                        1 Antwort Letzte Antwort
                                        0
                                        • HomoranH Nicht stören
                                          HomoranH Nicht stören
                                          Homoran
                                          Global Moderator Administrators
                                          schrieb am zuletzt editiert von
                                          #84

                                          Gut, aber dann wird im MOde 2 (oder1) immer alle 10 Sekunden gesendet, oder?

                                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          704

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe