Selbstbau HM_WDS10_TH_O mit Luftdruckmessung

Begonnen von trilu, 23 Februar 2014, 12:23:22

Vorheriges Thema - Nächstes Thema

Thorsten Pferdekaemper

Zitat von: trilu am 19 Mai 2014, 12:40:13if ((nTime == 0) || (nTime > mils))
das dürfte eigentlich kein problem geben, da die nächste zeit immer wieder auf basis der aktuellen zeit gesetzt wird.
ist ja ein unsigned integer. nehmen wir mal an ich brauche in 1000ms einen event und wir sind kurz vor den 49 tagen.
dann würde ich nTime so setzen nTime = millis() + 1000 - wobei millis() gerade 65500 wäre.
nTime wäre somit 65500 + 1000 = 965
nach der 49 tage grenze spring millis ja auch wieder auf 0 und somit sollte die if funktionieren.
angespannt  ;)
Ja, das ist der Fall, der funktioniert. Meine Oma (oder so?) hat aber immer gesagt "de Deifel is ä Aischhönsche":
Nehmen wir mal der Einfachheit halber an, dass millis nur 16 Bit hat. Also 0..65535. Und nehmen wir auch mal an, dass millis() gerade 64535 liefert. Dann ergibt sich
   ntime = millis() + 1000 = 65535
Das läuft jetzt ein bisschen so weiter, aber ausgerechnet wenn millis 65535 wäre kommt uns ein Interrupt oder sowas dazwischen (oder einer von Dirks delays). Lass das auch mal nur eine Millisekunde dauern. Beim nächsten poll() ist dann mils = 0, ntime aber immer noch 65535. Dann dauert es lange, bis das nächste mal ntime <= mils. ...und wenn es dann soweit ist, dann müssen wir auch genau die eine Millisekunde treffen.
Es kann schon sein, dass das unwahrscheinlich ist, aber wenn es passiert, dann ist es häßlich und keiner findet den Fehler.

Ich habe übrigens den Sensor seit heute Nacht mit dem RT gepeert laufen. So wie es aussieht gab es in den letzten 13 Stunden nur einmal einen kleinen Aussetzer wo sich die beiden ein oder zweimal verpasst haben. Ich würde sagen, dass das jetzt gut läuft. (...und das mit Helligkeitssensor.)
Die Version ist die aus Dirks git von gestern Abend (Sensor als auch AskSin aus Dirks Repo.)
Baut jemand das "+1" in die offiziellen Sourcen ein?
Gruß,
    Thorsten   
FUIP

santalaus

Hallo,

leider hat es gedauert, aber nun Rückmeldung zu den Bewegungsmeldern.
Sie sind da und ich habe diese angeschlossen. VCC+GND
D3/INT1 will ich für den Eingang nutzen.
Bei 3,3 V VCC liegt am Ausgang des Melders 2,6-2,8V an wenn Bewegung erkannt und 0V im Ruhezustand.

Ins Gehäuse hab ich den noch nicht eingebaut aber er müsste passen Mittig auf der Vorderseite zwischen Batterie und dem Stab für den Helligkeitssensor. Es sit aber knapp.

Nun stehe ich aber wie der Ochse vor dem Berg was die Programmierung angeht.
Mal sehen wann es wie weitergeht.

Nico

Dirk

#512
Hallo,

die Platinen der 2. Prototypenserie sind nun endlich mal angekommen.
Leider hat sich im Teil für die RS485-Variante ein kleiner Fehler eingeschlichen.
Die Bestückungsvariante für die Funkversion ist aber fehlerfrei.
Daher werde ich noch eine Prototypen-Serie machen.

Es sind nun aber wieder Platinen da, so dass ich schon einige Sensoren fertig machen kann.
Die Interessenten schicken mir bitte eine kurze PN.

Ich habe jetzt auch die Breakout-Boards für die SHT10 Sensoren hier.
Damit könnte der Aussensensor entsprechend mit einem Temperatur/Feuschte-Sensor erweitert werden.
Siehe Bild.


@santalaus
ZitatD3/INT1 will ich für den Eingang nutzen.
Bei 3,3 V VCC liegt am Ausgang des Melders 2,6-2,8V an wenn Bewegung erkannt und 0V im Ruhezustand.
Das sollte ohne Probleme funktionieren.

ZitatNun stehe ich aber wie der Ochse vor dem Berg was die Programmierung angeht.
Was brauchst du hier für Hilfe?

@Thorsten
ZitatBaut jemand das "+1" in die offiziellen Sourcen ein?
Ja, mach ich.

@Trilu
Zitatwenn du mir sagst was ich machen muss (bin nicht der held mit git)
Du könntest deine und meine Version mal diffen, und schauen ob du mit den Änderungen einverstanden bist.
Dann kann ich das auch mergen.


Gruß
Dirk

Thorsten Pferdekaemper

Zitat von: Dirk am 24 Mai 2014, 01:27:01Daher werde ich noch eine Prototypen-Serie machen.
Es sind nun aber wieder Platinen da, so dass ich schon einige Sensoren fertig machen kann.
Die Interessenten schicken mir bitte eine kurze PN.
Wenn Du mal welche mit RS485 hast, dann wäre ich an mindestens zweien interessiert.
Für die Funkversion kommt eine Mail...
Zitat@ThorstenJa, mach ich.
Das bezieht sich auf das "+1". Könntest Du Dir auch anschauen, was ich zur Behandlung der millis() geschrieben habe? (Siehe http://forum.fhem.de/index.php/topic,20620.msg169842.html#msg169842 und http://forum.fhem.de/index.php/topic,20620.msg169954.html#msg169954.
Ich wollte beides in den Issue-Tracker für AskSin im GitHub eintragen, aber da gibt es keinen Issue-Tracker...

Gruß,
    Thorsten
FUIP

Bennemannc

Hallo,

bezüglich der millis() beim panstamp (sollte auch beim Adurino so sein) ist ein unsignedLong und läuft nach ca. 49 Tagen über. Zudem ist millis() kritisch wenn man WDT oder GoToSleep nutzt, da wird der millis() nämlich angehalten und läuft nicht weiter.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Thorsten Pferdekaemper

Zitat von: Bennemannc am 27 Mai 2014, 13:04:24bezüglich der millis() beim panstamp (sollte auch beim Adurino so sein) ist ein unsignedLong und läuft nach ca. 49 Tagen über.
Genau, aber wenn man's richtig macht, dann ist das egal. ...zumindest solange die zu messende Zeit kleiner ist als 49 Tage und die Prüfung öfter als einmal alle 49 Tage stattfindet.
Hier ist die Erklärung:
http://www.leonardomiliani.com/2012/come-gestire-loverflow-di-millis/comment-page-1/?lang=en

ZitatZudem ist millis() kritisch wenn man WDT oder GoToSleep nutzt, da wird der millis() nämlich angehalten und läuft nicht weiter.
Ich glaube, dass die AskSin-Devices das nicht machen.
FUIP

trilu

Zudem ist millis() kritisch wenn man WDT oder GoToSleep nutzt, da wird der millis() nämlich angehalten und läuft nicht weiter.

Dafür habe ich in der AskSin ein paar Zeilen Code spendiert. Wenn das Device per WDT schläft, addiere ich die Zeit in der es geschlafen hat zum millis() counter.


trilu

wollte gerade mal die unterschiede anschauen und die beiden repos wieder zusammenführen.
aber ich komme keinen schritt weiter - kennt jemand eine gute anleitung?
ich arbeite unter windows....

trilu

shit, ich lass jetzt die finger davon - irgendwas habe ich zerschossen - hilfeeeeeeeeeeeee

hexenmeister

Das schöne bei git ist, dass man alles zurück drehen kann. Zur Not muss man von vorne anfangen.
Was ging denn kaputt?
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

trilu

das wenn ich wüsste - ich habe einen pull request auf den fork von dirk gemacht,
und jetzt kompiliert nichts mehr. ich hatte mir die changes so weit angeschaut und wollte sie in meinen master übernehmen.
der fork von dirk kompiliert jetzt aber auch nicht mehr durch...

hexenmeister

Kann dich gut verstehen, Habe auch manchmal mit ähnlichen Sachen zu kämpfen   :o

Mache doch einen Vergleich mit dem Repository (beide alte Stände), dann siehst Du, was sich alles geändert hat. Das hilft normalerweise den Durchblick wieder zu erlangen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Dirk

Zitat von: trilu am 30 Mai 2014, 19:24:00
und jetzt kompiliert nichts mehr. ich hatte mir die changes so weit angeschaut und wollte sie in meinen master übernehmen.
Wenn die Änderungen für dich so ok sind, dann kann ich das auch bei dir rein mergen.
In den master?

Gruß
Dirk

trilu

Ja,  mach mal.
Mit der Serial ID und HM ID bin ich noch nicht ganz glücklich,  aber ob wir von deinem fork oder von meiner Version weitermachen spielt keine Rolle.
Ich stelle fest,  ich habe keine Ahnung von git  :)

Dirk

#524
Zitat von: trilu am 30 Mai 2014, 19:24:00
ich habe einen pull request auf den fork von dirk gemacht, und jetzt kompiliert nichts mehr.
Also in meiner Arduino-IDE kompilieren auch ältere Stände der Lib und der Examples nicht.

Serial.h: No such file or directory
memory.h: No such file or directory

usw.

mit dem Eclipse-Plugin funktioniert das.
Hab aber grade keine Idee was das sein sollte.

ZitatMit der Serial ID und HM ID bin ich noch nicht ganz glücklich
Was macht dich hier "unglücklich" bzw. was würdest du da anders machen?