Eigenbau Homematic Wasserzähler.

Begonnen von Dirk, 17 Januar 2016, 16:18:13

Vorheriges Thema - Nächstes Thema

papa

Zitat von: ext23 am 16 Juni 2017, 15:57:30
sag mal kann man den Signaleingang auch umstellen auf Flankenwechsel? Ich hab an meiner Uhr so ein Halbmond, sprich 50% high und 50% low. So wie es jetzt ist zählt der immer nur komplette Liter. Wenn man mit Flankenwechsel arbeiten könnte, würde ich halbe Liter messen können.

Hm - ja. Einfach die Zeile 378 löschen (im Master Branch) - also so:


void meterISR () {
  gasISR.debounce();
  if( gasISR.checkstate() ) {
    sdev.channel(1).next();
  }
}


Jetzt wird nur noch auf den Wechsel geprüft.

Zitat von: ext23 am 16 Juni 2017, 15:57:30
Achso und wieso vergisst der immer sein
PairedTo
R-pairCentral

nach einem power reset? Die Register merkt der sich auch nicht.

Was heisst Power-Reset ? Spannung aus und wieder an ? Das sollte so nicht sein. Die Daten sollten eigentlich im EProm stehen. Sie werden nur zurückgesetzt, wenn etwas am Layout der Listen geändert wird. Kannst Du mal die Ausgaben nach dem Anschalten posten.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

ext23

#151
Perfekt, dann ändere ich das mal.

Und ja ich meine Strom aus und an. Wie sauber ist denn die eeprom Methode? Man muss ja da etwas aufpassen das man nicht gerade schreibt wenn der Strom weg bleibt etc. sonst hat man matsch im eeprom.

Die Ausgabe nach dem Anschalten wird dieselbe sein die ich schon mal gepostet habe. Aber ich verifiziere das nochmal demnächst. Ich hab da nur keine UART dran im Moment.

UPDATE:
Jetzt leuchtet die LED immer dauerhaft und der bleibt bei dem CC init stehen und macht erst nach einer weile weiter und zeigt dann BAT an. Irgendwie komisch, also ob da mit dem panStamp etwas faul ist. vielleicht sollte ich mal den eeprom löschen. Ich werd auch mal schauen ob die brown out detection aktiviert ist, das sollte ja an sein bei der eeprom Benutzung.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

ext23

OK jetzt läuft es. Ich habe mal zwischen panStamp und 3,3V ein Elko gepackt. Irgendwie ist da etwas zusammengebrochen.

Jetzt muss ich mir nur noch eine grafische Auswertung überlegen. Verbrauch aller 10 Minuten oder sowas.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

ext23

Moin,

du papa wenn wir schon mal beim Thema sind. In wie weit sind die Register im HM Device verankert? Möchte ich jetzt also neue Register hinzufügen muss ich zwangsweise ein neues HM Device kreieren? Oder würde es dennoch als HM-ES-TX-WM arbeiten?

Wo kann ich im Code meine eigenen Berechnungen etc. einbringen. ist diese AskSin Lib zeitkritisch oder wird dort alles mit Interrupts gelöst?

Ich bin nämlich am überlegen die Auswertung der Lichtschranke doch mit einzubauen. Da ist ja nichts weiter bei, ein paar Werte vom ADC lesen und vergleichen und um etwas Strom zu sparen eventuell die LED nur zyklisch zu aktivieren, alle 500ms oder so.

Die neuen Register brauche ich dann um die Schwellwerte zu setzen. Ich muss ja eine gewissen Hysterese einbauen.

Gruß
Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

papa

Zitat von: ext23 am 20 Juni 2017, 11:55:44
du papa wenn wir schon mal beim Thema sind. In wie weit sind die Register im HM Device verankert? Möchte ich jetzt also neue Register hinzufügen muss ich zwangsweise ein neues HM Device kreieren? Oder würde es dennoch als HM-ES-TX-WM arbeiten?

Dafür müsstest Du ein neues Gerät kreieren. Allerdings hat der HM-ES-TX-WM noch ein paar Register (z.B. MeterSensibilityIR - 8bit), welche Du für Deine Zwecke missbrauchen kannst :-)

Zitat von: ext23 am 20 Juni 2017, 11:55:44
Wo kann ich im Code meine eigenen Berechnungen etc. einbringen. ist diese AskSin Lib zeitkritisch oder wird dort alles mit Interrupts gelöst?

Ich bin nämlich am überlegen die Auswertung der Lichtschranke doch mit einzubauen. Da ist ja nichts weiter bei, ein paar Werte vom ADC lesen und vergleichen und um etwas Strom zu sparen eventuell die LED nur zyklisch zu aktivieren, alle 500ms oder so.

Die neuen Register brauche ich dann um die Schwellwerte zu setzen. Ich muss ja eine gewissen Hysterese einbauen.

Im Prinzip wird alles per Timer ausgelöst. Es wird also immer geschlafen, bis der nächste Timer abgelaufen ist - oder ein externer Interrupt auftritt.
Lass mich mal nachdenken, wie wir IR-Abfrage einbauen könne. Im Prinzip ist ja sowas schon durch die Mode IR und entsprechende Regsiter vorgesehen.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

ext23

#155
Was ich im Moment zum Auswerten der Reflexlichtschranke nehme ist das folgende Programm im Anhang. Natürlich ist da noch ein Haufen drum rum was man nicht braucht.

Das war ein fertiges Programm, da brauchte ich nicht viel machen und es macht was es soll.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

papa

#156
Probiere mal die angehängte Version. Ich habe mal schnell eine IRSensor-Klasse gemacht, die alle 500ms aufgerufen wird und die Messung durchführt. Bitte noch die Defines


#define SENSPIN A7
#define IRPIN 5 // D5
#define HIGHVAL 200
#define LOWVAL 50


anpassen. Ich habe nur probiert, ob es durch den Compiler geht. Also muss nicht unbedingt funktionieren.

Edit: Code angehängt
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

ext23

EnableInterrupt.h

welche hast du da benutzt?

Das ist alles ein durcheinander für mich ;-) Ich hab die AVRs sonst immer mit AVR Studio programmiert ohne groß Bibliotheken einzufügen. Ich hab das alles selber gemacht teilweise auch mit inline assembler weil so ein Atmega8 ja nicht unendlich Platz hat. Mit der Arduino IDE seh ich kaum noch durch, vor allem fehlt mir echt die Debug Funktion :-( Und jünger wird man auch nicht mehr ;-)

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

papa

Zitat von: ext23 am 20 Juni 2017, 15:27:48
EnableInterrupt.h

welche hast du da benutzt?

Das ist alles ein durcheinander für mich ;-) Ich hab die AVRs sonst immer mit AVR Studio programmiert ohne groß Bibliotheken einzufügen. Ich hab das alles selber gemacht teilweise auch mit inline assembler weil so ein Atmega8 ja nicht unendlich Platz hat. Mit der Arduino IDE seh ich kaum noch durch, vor allem fehlt mir echt die Debug Funktion :-( Und jünger wird man auch nicht mehr ;-)

/Daniel
Schau mal in github - im Master sind die benötigten verlinkt.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

ext23

#159
OK letztens waren noch 3 andere libs auf der Seite ;-) PinChangeInt war dann vermutlich die alte int lib.

Hast du es mit der asksinpp master oder v1 kompiliert?

Mit
typedef AvrSPI<10,11,12,13> SPIType;
typedef Radio<SPIType,2> RadioType;
typedef StatusLed<4> LedType;
typedef AskSin<LedType,BatterySensor,RadioType> HalType;
kommt er nicht klar.
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

papa

Zitat von: ext23 am 20 Juni 2017, 16:15:23
OK letztens waren noch 3 andere libs auf der Seite ;-) PinChangeInt war dann vermutlich die alte int lib.

Hast du es mit der asksinpp master oder v1 kompiliert?

Mit
typedef AvrSPI<10,11,12,13> SPIType;
typedef Radio<SPIType,2> RadioType;
typedef StatusLed<4> LedType;
typedef AskSin<LedType,BatterySensor,RadioType> HalType;
kommt er nicht klar.
Mit Master.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

ext23

OK dann klappt es auch.

Gut, danke, ich schau mir das heute Abend nachm Sport mal an.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

ext23

So Fenstergriff geht, jetzt geht es hier weiter. Ich muss mir ein paar Debug ausgaben einbauen. Der zählt im IR Modus massig die energie hoch. Da muss ich noch an den Werten drehen aber dazu muss ich erst mal wissen wo er liegt. Ich werd da mal ein bissel basteln und berichten.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

ext23

Also das haut hin, sehr geil.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

ext23

Moin, also das klappt wirklich ganz gut.

Zwei Sachen muss ich nur anpassen.
Einmal das wieder der Flankenwechsel als ein Count gezählt wird, so kann ich halbe Liter messen.
Und das der nur in kilo Schritten hoch zählt im IR Mode.

Für was ist eigentlich der zweite Kanal, könnte ich hier zwei Sensoren anschließen? Ich habe zwei Uhren, warm und kalt.


Gruß
Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)