Ankündigung

Einklappen
Keine Ankündigung bisher.

1Wire am EibPC

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Hi Martin,

    mit dem derzeitigen HA7E Makro geht das nicht. Prinzipiell sollte das aber möglich sein. Aber da das sonst im Linux über das OWFS ausgelesen wird muß man sich erst mal überlegen, wie die Daten ausgelesen werden müssen und dann umgewandelt werden. Es spielt da in den Sensor auch eine Temperaturkompensation hinein aber die Temperatur kann direkt vom darauf verbauten DS18B20 geliefert werden. Schau ich mir mal an, ob ich das ganze ins Makro giessen kann.

    Gruß,
    Bernd

    Kommentar


      Zitat von bmx Beitrag anzeigen
      Es spielt da in den Sensor auch eine Temperaturkompensation hinein aber die Temperatur kann direkt vom darauf verbauten DS18B20 geliefert werden. Schau ich mir mal an, ob ich das ganze ins Makro giessen kann.
      Es ist für die Genauigkeit völlig ausreichend, hier die Temperatur des DS2438 (an dem auch der Feuchtesensor hängt) heranzuziehen, weil dann für die Messung & rechnerische Kompensation der relativen Luftfeuchte nur mit einem Baustein kommuniziert werden muss. Im Wiregate Multifunktionsgateway machen wir das genauso.

      An den Formeln hat sich beim Adv. Multisensor nichts geändert gegenüber dem "alten" Multisensor, insofern sollte sich das Makro einfach anpassen lassen (insofern die Anpassung überhaupt erforderlich ist).

      lg

      Stefan

      Kommentar


        Hi Stefan,

        beim Makro für den IP-Extender ist das ja einfach nur eine Webabfrage. Der HA7E ist ja eigentlich dagegen fast schon low level. Ich bezog mich aber nur auf das HA7E Makro.
        Mit dem IP Extender wird das mit den enertex Makros wohl sofort gehen.

        Gruß,
        Bernd

        Kommentar


          Grundsätzlich kann der HA7E (von dem ich nicht soviel halte aber..) alle Sensoren, also auch den DS2438+HIH4xxx; ist halt eher "low-level"
          Mit dem IP-Extender gehts natürlich (technisch) auch, da läuft ein owserver, der den kompensierten Wert im Klartext auswirft, obs im aktuellen Makro umgesetzt ist weiss ich nicht aber das sollte ein Klacks sein

          Makki

          P.S.: Auf die Temperaturkompensation kann man sich - auch wenn wir sie machen - übrigens weitgehend ein Ei pellen, weil die Wirkung liegt weit unterhalb des Genauigkeitsbereichs des Sensors..
          EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
          -> Bitte KEINE PNs!

          Kommentar


            In den IP-Extender Makros ist beides bereits integriert:
            Temperatur und Luftfeuchte
            Enertex Bayern GmbH - www.eibpc.com

            Kommentar


              Da ich überlege später den Multisensor in der VOC Variante einzusetzen, ist es wohl einfacher, wenn ich den IP Extender für den Anschluß an den EibPC einsetze.

              Die Anpassung der Makros für VOC sollte dann hoffentlich unproblematisch sein.
              Viele Grüße
              Martin

              There is no cloud. It's only someone else's computer.

              Kommentar


                @Steffi: Danke für die Besätigung.

                Zitat von Msinn Beitrag anzeigen
                Die Anpassung der Makros für VOC sollte dann hoffentlich unproblematisch sein.
                Davon ist auszugehen, das wird wie bisher auch alles - für alle Systeme & Anwendungen in allen Lebenslagen per (C/Perl/Python/PHP/Java/TCL)-API + Filesystem + HTTP/JSON ausgegeben..

                Makki
                EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                -> Bitte KEINE PNs!

                Kommentar


                  Ich habe hier Probleme mit einzelnen Sensoren - könnte an der Verdrahtung liegen, oder einfach der Anfälligkeit des Systems mit 1-Wire. Es sind ca. 8 Sensoren an 80 m Leitung ohne bzw. nur kurze Stichleitungen. Jedenfalls hab ich mal mit meinem HA7E Werte von bestimmten Sensoren und mal nicht, dabei nutze ich die Enertex-1Wire lib. Nun wollte ich die BMX Lib testen (Version 22), doch da bekomme ich die Meldung, dass die CRLF Variable nicht definiert wäre. Offenbar fehlt mir da was.

                  Kommentar


                    Moin Uwe,

                    Zitat von Kahler Beitrag anzeigen
                    BMX Lib testen (Version 22), doch da bekomme ich die Meldung, dass die CRLF Variable nicht definiert wäre. Offenbar fehlt mir da was.
                    [highlight=epc]
                    CRLF = $ $
                    if systemstart() then {
                    stringset(CRLF, 0x0d, 0u16);
                    stringset(CRLF, 0x0a, 1u16);
                    } endif
                    [/highlight]

                    Du kannst sonst auch im Downloadbereich die Date BMXKonstanten(n).lib runterladen...

                    Übrigens würde ich bei deinen 8 Sensoren noch die Version 15 nehmen, die ist performanter, das sie nicht mit Doppelqueue arbeiten muß.

                    Siehe zu Erklärungen auch hier oder hier. Die BMXHA7E15a findest Du hier.

                    Gruß,
                    Bernd

                    Kommentar


                      Moin Bernd,

                      vielen Dank für die prompte Antwort. Werde die 15er Version in Kürze testen und dann berichten.

                      Grüße
                      Uwe

                      Kommentar


                        Zitat von bmx Beitrag anzeigen
                        Moin auch,

                        mich würde interessieren, wer den HA7E tatsächlich an seinem EibPC betreibt, wieviele Sensoren dranhängen und welche Sensoren dran sind bzw. welche Sensoren jemand gerne dran sähe...

                        Ich frage weil ich gerade die Makros für den HA7E neu erstelle ...

                        Gruß,
                        Bernd
                        Hallo, 2 Jahre später aber vielleicht nicht zu spät:

                        Seit 2 Wochen laufen bei mir 12 Stk. DS18B20 am HA7E im nicht parasitären Betrieb. Als Netzteil dient ein 5 V USB Netzteil.
                        Die Topologie ist Sternförmig. Drei ca. 10 m lange CAT5e Patchkabel sind vom HA7E zu den drei Heizungsverteilern gelegt. Von dort aus gehen bis zu 7 m lange 5x1,5 mm^2 NYM (nicht 1Wire konform!-aber funktioniert bis dato) Leitungen zu den Dosen in denen die Raumtemperaturregler vorgesehen waren und nun sich die DS18B20 Sensoren befinden.

                        Ein Raum wird bereits über einen KNX Heizungsregler auf der Hutschiene geregelt. Weitere Räume sollen noch folgen.
                        Ich kann hier noch keine Empfehlung geben, dass so nachzubauen, da Langzeiterfahrungen fehlen und einiges noch nicht so Dumm-Userfreundlich ist, wie ich mir das vorgestellt hatte.

                        Nach ersten Erfolgen mit der enertexOneWire.lib lief ich auch in das Problem, dass nach manchen Systemstarts des eibPCs einige Sensoren nur noch 100°C (= Kein Wert ausgelesen) anzeigten.
                        Ich habe seit heute morgen die bmxha7e_15a.lib in Betrieb. Diese läuft offensichtlich sehr stabil (Mein Kompliment und Dank an BMX). Ich werde die nächsten Wochen weiter damit testen und dann nochmal berichten.

                        Mein Wunsch wäre es mehr als die nur vom bmxha7e_15a.lib unterstützten 19 Sensoren zu betreiben.


                        Hier nun noch ein paar Fragen:
                        1)Da die bmxha7e_15a.lib sehr mächtig ist und die Message-Que nur mit viel Zeit und Kenntnis (Beides bei mir noch nicht vorhanden) umzubauen ist: Was macht die bmxha7e_15a.lib anders als die enertexOneWire.lib in Bezug auf das oben beschriebene 100°C Problem?

                        2)Warum ist immer wieder von mindestens 2-5 min Wartezeit bzw ~20 sec Auslesezeit pro Sensor die Rede? Beim DS18B20 (Ich muss gestehen, ich habe die Datenblätter bis jetzt nur überflogen) lese ich Timings vom unter 1 sec. Ein schneller Test mit der bmxha7e_15a.lib und 20 sec Wartezeit scheint zu funktionieren.
                        Da ich überwachen möchte, ob sich meine beiden Regler die für die Vorlauftemperaturen verantwortlich sind, sich auf geschwungen haben, möchte ich bei 1-3 Sensoren Werte abfragen im Bereich von 5-10 sec.



                        @enertex: Das ist ein weiterer Wink mit dem Zaunpfahl eine lib zu bauen und zu warten die mindestens 40 Sensoren verwalten kann und o.g. 100°C Problem abstellt. Für mich ein großes Verkaufsargument Kosten bei der Einzelraumregelung zu sparen.

                        Kommentar


                          Moin,

                          Zitat von rennsemmel Beitrag anzeigen
                          Mein Wunsch wäre es mehr als die nur vom bmxha7e_15a.lib unterstützten 19 Sensoren zu betreiben.
                          Mit der neuen Firmware V3 können auch mehr Sensoren betrieben werden. Die Limitation ist ursächlich durch die maximale Länge der alten Strings bedingt. Ob das dann zeitlich gesehen noch schnell genug ist, mußt Du für Dich selber entscheiden. Wenn man lediglich alle 10 min. einen Temperaturwert braucht, dann ist das sicher kein Problem. Solltest Du aber in schneller Folge messen wollen z.B. um den Mischer der Heizung zu regeln, dann wird das sicher nicht klappen.


                          Was macht die bmxha7e_15a.lib anders als die enertexOneWire.lib in Bezug auf das oben beschriebene 100°C Problem?
                          Mein Makro ist ähnlich aufgebaut wie das Enertex Makro. Allerdings sind einige Prüfungen mehr drin und auch die Sensor-Initialisierung ist berücksichtigt. Internas kannst Du Dir über das Datenblatt des HA7E holen bzw. des DS18B20.

                          Vereinfacht muß beim Systemstart ins EEPROM des Sensors dessen Auflösung geschrieben werden.

                          Je Auslesung muß der 1Wire Bus zunächst zurückgesetzt werden, dann wird der Sensor adressiert, ein Konvertierungsbefehl geschickt, gewartet, wieder Reset, Konvertierungsergebnis abholen.
                          Dieser Zeitraum in Verbindung mit dem HA7E und dem EibPC dauert etwa 20sec.

                          Man kann bei aktiver Versorgung (nicht parasitär) auch alle Sensoren anweisen, gleichzeitig die Temperatur umzuwandeln. Dazu müßte das Makro aber geändert werden.

                          Da ich überwachen möchte, ob sich meine beiden Regler die für die Vorlauftemperaturen verantwortlich sind, sich auf geschwungen haben, möchte ich bei 1-3 Sensoren Werte abfragen im Bereich von 5-10 sec.
                          Dafür halte ich persönlich die 1-Wire Lösung mit HA7E für ungeeignet.
                          Allerdings muß man sich fragen, ob da Systembedingt nicht erst was verbessert werden muß damit es gar nicht zu solchem Schwingverhalten kommt. Aber das ist wohl eher Thema für einen anderen Thread.

                          Gruß,
                          Bernd

                          Kommentar


                            Zitat von bmx Beitrag anzeigen
                            Man kann bei aktiver Versorgung (nicht parasitär) auch alle Sensoren anweisen, gleichzeitig die Temperatur umzuwandeln.
                            Diesen Snapshot-Ansatz finde ich in so fern besser, als das zeitgleich gemessene Werte im Falle schnellerer Änderungen die Zusammenhänge besser erkennen lassen. Und in den Fällen, in denen das nicht wichtig ist, stört die zeitgleiche Messung ja nicht. Und wenn es dadurch insgesamt schneller geht, einmal alle Sensoren abzufragen, weil nicht jedesmal individuell ein Mess- befehl vorausgehen muss, dann ist doch allein das schon Grund genug. Auch wenn Temperaturen im Allgemeinen sich nur langsam ändern, eine Fenster-auf-Erkennung über die Temperatur funktioniert nun mal nicht gut mit einer Messung alle 10min oder langsamer...
                            Tessi

                            Kommentar


                              Hallo Bernd,

                              da muss ich nochmal nachhaken aber schon mal Danke:

                              Mit der neuen Firmware V3 können auch mehr Sensoren betrieben werden.
                              soll heissen mit der bmxha7e_15a.lib ohne notwendige Änderung oder mit der enertexOneWire.lib sind >=40 Sensoren drin mit der neuen Stringlänge?


                              Je Auslesung muß der 1Wire Bus zunächst zurückgesetzt werden, dann wird der Sensor adressiert, ein Konvertierungsbefehl geschickt, gewartet, wieder Reset, Konvertierungsergebnis abholen.
                              Wie soll ich dass jetzt Fragen ohne Faul zu wirken: In einem anderen Thread hattest Du bereits folgendes geschreiben:
                              ...
                              1. im EEPROM des DS18B20 steht die Wandlungsgenauigkeit, die muß gesetzt werden und dann auch zur Umwandlung passen., das macht das enertex Makro nicht
                              2. die Wandlung im enertex Makro startet bereits nach 14 Zeichen, korrekt wären aber eigentlich 21
                              3. es gibt einen Wert 100 der gesendet wird, bei meinem Makro wird halt im Fehlerfall (85° vom Sensor) nichts gesendet
                              4. wenn Du bei mir die Debug Informationen rausnimmst und auf Meldungen per netcat verzichtest, wird's da auch kleiner.
                              5. (dazu HA7E_DebugOut_String() Makro ändern:
                                :return sun()
                              6. mein Makro nimmt Rücksicht auf die Wandlungsdauer, das enertex makro nicht.
                              7. Im Falle eines Fehlerwertes wird der gleiche Sensor sofort noch einmal abgefragt...
                              Daraufhin habe ich mir Dein Makro und das Datenblatt des DS18B20 angesehen und auch weite Teile Deiner Beschreibung wiedergefunden. Denkst Du alle diese Punkte müssen beachtet werden um das 100°C (=Auslesefehler) Problem einiger Sensoren nach dem Systemstart zu beseitigen?


                              Aber warte mal, wärend ich das Schreibe und weiter teste fällt mir folgendes auf: Ich habe 4 Sensoren auf 5 sec und die restlichen 8 Sensoren auf 20 sec Auslesezeit gesetzt. Ca 30 sec nach Systemstart werden alle Werte angezeigt. Bin ich vieleicht schon am vorläufigen Ziel und Dein Makro kann bereits ein quasi paralleles Auslesen der Sensoren dank nicht parasitärem Betrieb?
                              Ich werde mal die nächsten Tage weiter testen und berichten.

                              Kommentar


                                Moin,

                                @Tessi: Ja, aber wie geschrieben, es muß eine aktive Versorgung existieren, mit parasitär geht es nicht und das Makro muß angepaßt werden.

                                @rennsemmel: bmxha7e_15a.lib ist ohne Änderung nicht mit Anzahl Sensoren > 19 nutzbar.
                                Eine Version bmxha7e_15e.lib habe ich zu Hause schon mal getestet. Allerdings habe ich da auch Fehlerbehandlung, output etc. total umgestellt so das Debugausgaben in einen langen String geschrieben werden. Das funzt nicht mehr durch reines austauschen der lib.

                                Denkst Du alle diese Punkte müssen beachtet werden um das 100°C (=Auslesefehler) Problem einiger Sensoren nach dem Systemstart zu beseitigen?
                                Ja, sonst hätte ich mir die Mühe nicht gemacht das zu implementieren. Es ist ja keine Programmieraufgabe für Unterbeschäftigte...

                                Bin ich vieleicht schon am vorläufigen Ziel und Dein Makro kann bereits ein quasi paralleles Auslesen der Sensoren dank nicht parasitärem Betrieb?
                                Nein, das Makro ist nicht so schlau um festzustellen, ob es mit parasitärer oder aktiver Versorgung läuft. Momentan läuft das so, das bei einem Read-Request die Warteschlange im die notwendigen Abfragebefehle ergänzt wird. Sollte der Sensor schon in der Schlange drinstehen, dann passiert halt nix.
                                Bei den 100° ist es einfach so, das der Sensor 85° meldet, wenn es einen Fehler gegeben hat. Sollte das Makro diesen Fehler feststellen, dann bindet es den selben Sensor am Anfang der Warteschlange erneut ein. Sollte der Fehler zu oft auftreten, geht das Makro (glaube ich) davon aus, das der Sensor kaputt ist und fragt den nicht mehr ab.

                                Gruß,
                                Bernd

                                Kommentar

                                Lädt...
                                X