Fensterdrehgeriffkontakt - Die nächste Runde

Begonnen von papa, 02 April 2020, 09:37:44

Vorheriges Thema - Nächstes Thema

Papa Romeo

Zitat von: papa am 05 August 2021, 20:35:45
Tja - die Doku ist immer so eine Sache. Da reicht die Zeit meist leider nicht, um das gut zu machen. Manchmal würde ich mich auch freuen, wenn ich nochmal irgendwo nachlesen könnte, was ich da verbrochen habe ;-)

... da hast du wohl recht. Und dann bleibt es ja meistens nicht nur bei einem Projekt ...  ???

LG
Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

papa

Zitat von: KurtK am 05 August 2021, 20:40:13
Meine Platinen sind nach 7 Tagen Lieferzeit von JLCPCP angekommen.
Nun stellt sich mir noch eine Frage.

Die Platine ist ja für eine 2x5 2mm Stiftleiste zum flashen ausgelegt. Weiß jemand ob es ein Adapterkabel auf die Standard ISP10 Stecker mit 2,54mm fertig zu kaufen gibt oder ist hier noch ein wenig basteln angesagt?
Adapter sollte z.B. dieser
https://shop.myavr.de/index.php?sp=article.sp.php&artID=100075
gehen - kann man sich aber auch einfach selber löten.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Maxel

Hallo,

ich habe mir die Bodenplatte mit der Abdeckung an diesen Fenstergriff angepasst. Dazu die Antenne versenkt und die Drehscheibe vergrößert und das Vierkantloch auf 7 mm reduziert und die  Bohrung für den Magneten Ø2mm nach außen gerückt, damit der Sensor ihn sicher erfasst.

Gruß Maxel
FHEM auf Banana Pi
CUL V3 (FS20), Homematic, MAX, 1-Wire, Lacrosse (LaCrosseGateway)

Esjay

Zitat von: eki am 04 August 2021, 22:00:44
Ich habe auch JLCPCB für die Platinen und die Bestückung genutzt. Die hatten zwar die TLEs leider nicht vorrätig und die Bestückung habe ich auch nur auf einer Seite gemacht (die auf der der ATMEGA ist), ein bisschen SMD Löten ist also schon noch nötig, dafür ging es trotz aktuellem Lieferchaos erstaunlich schnell (7 Tage).

Für den halb verdeckten Türgriff reicht meines Erachtens ein angepasstes Gehäuse nicht, da müsste man möglicherweise auch was an den Platinen machen, weil ja die Löcher für die Schrauben und den Vierkant wahrscheinlich auch nicht passen.

Wo hast du die übrigen Bauteile noch bestellt?

Da kommt ja noch ein bisschen was drauf.

Grüße

Flole

#439
Hallo,

ich habe mir nun auch mal den ersten zusammengelötet. Funktioniert (natürlich) nicht. Ich habe zuerst die Hex-Datei aus dem Github-Repo genommen und dann mit der html Datei angepasst, das ganze dann geflasht. Ergebnis: Rote LED Blinkt 7 mal, dann leuchten beide LEDs, ich drücke "config" und die grüne LED leuchtet dauer. Nächster Versuch um eine leere Batterie auszuschließen war ein 3V Labornetzteil: Selbes Ergebnis.

Also habe ich mir gedacht kompiliere ich es selbst, dort ein ähnliches Ergebnis nur das grün und rot blinken während des pairing-versuchs. Funktionieren tut es aber in keinem Fall, auch wenn ich die Geräte direkt an die Zentrale halte (da sollte eigentlich immer noch irgendein Signal rüberkommen, auch wenn die Antenne total verstimmt ist).

Auf der seriellen Schnittstelle kommt (in beiden Fällen) sowas schönes raus:
<\n>
AskSin OTA Bootloader V0.7.0<\n>
<\n>
Start App<\n>
As???k?<2>???r??(?]<22>?7?&?? 0????4?JC?????ss???ce'???-?NfHh<\r><1>i?ZWj<\n>
C(??rsZ?K?1?C??K??a?^C!???? 1?j<\n>
P,W???? C?,??Ms?C?<- 0<20>???86?0??S<21>A2????00??<2>?1 (<2>?? 0<2>?<18>? ????1?? de?+??e<\r>? p?Y??d<\r>? ?Y???ed??<K?<\n>
<1>02??<2>?? C?<21><5>I 0?????102???<2>?*?4&??<2>34?9 ?<19>?? 3?39?6??<2>?? 0???<2>?-?ML&??<\r>?


Gibt es irgendwo eine Übersicht über die LED "blinkcodes"? Was möchte es mir sagen? Warum kommt auf der UART plötzlich nur Blödsinn?

papa

Das ist schon eigenartig - der Bootloader startet korrekt. Aber dannach kommt nur noch Schrott.
So richtig erklären kann ich mir das nicht. Das HEX aus dem Repository funktioniert auf jeden Fall.

Hast Du die Platine selbst bestückt oder komplett fertigen lassen ?
Wie hast Du das HEX geflasht.
Welche Arduino Version/Einstellungen hast Du verwendet?
Kannst Du mal ein Bild vom AVR machen - vielleicht ist das ein falscher.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

KurtK

Zitat von: Esjay am 06 August 2021, 22:05:13
Wo hast du die übrigen Bauteile noch bestellt?

Da kommt ja noch ein bisschen was drauf.

Grüße

Ich hab meine übrigen Teile alle bei Aliexpress bestellt. Ab 5€ Bestellwert bieten die mittlerweile auch einen kombinierten Versand an, sprich man bekommt nicht mehr jeden kleinen Umschlag von jedem Händler einzeln geschickt, sondern alles gesammelt in einem Paket. Lieferzeit war ca. 2 Wochen.
- FHEM auf Intel NUC mit Proxmox -
- FTUI mit FUIP -
- HM, Zigbee,  WLAN -

Esjay

Zitat von: KurtK am 07 August 2021, 09:36:58
Ich hab meine übrigen Teile alle bei Aliexpress bestellt. Ab 5€ Bestellwert bieten die mittlerweile auch einen kombinierten Versand an, sprich man bekommt nicht mehr jeden kleinen Umschlag von jedem Händler einzeln geschickt, sondern alles gesammelt in einem Paket. Lieferzeit war ca. 2 Wochen.

Wäre es möglich eine Liste der Links zusammen zu stellen?

Grüße

KurtK

#443
Habe auf die schnelle mal eben die Bestellung rasugesucht. Gebe aber keine Garantie auf Richtigkeit oder Qualität, da ich die Platinen noch nicht zuende bestückt habe.
(Kurzer Nachtrag: Habe die erste Platine gebaut und alle Bauteile funktionieren. Nur bei den Funkmodulen musste ich vorher den FrequenzSketch laufen lassen.)

Batteriehalter:
https://de.aliexpress.com/item/4000274412260.html

LEDs:
https://de.aliexpress.com/item/32288211535.html

Hall-Sensoren:
https://de.aliexpress.com/item/4001321271460.html

Widerstand 1MOhm:
https://de.aliexpress.com/item/32858225842.html

CC1101:
https://de.aliexpress.com/item/32630602112.html

Kondensatoren 10nF, 9pF, 10 pF :
https://de.aliexpress.com/item/32964553793.html

Taster:
https://de.aliexpress.com/item/32698846968.html

Bei der Steckerleiste habe ich leider nicht aufgepasst und diese in 2x5 2,54mm anstatt 2mm bestellt. Hier habe ich über die Bucht schnell welche nachbestellt.
- FHEM auf Intel NUC mit Proxmox -
- FTUI mit FUIP -
- HM, Zigbee,  WLAN -

Flole

#444
Zitat von: papa am 07 August 2021, 09:05:18
Hast Du die Platine selbst bestückt oder komplett fertigen lassen ?
Selbst bestückt
Zitat von: papa am 07 August 2021, 09:05:18
Wie hast Du das HEX geflasht.
Mit einem STK-500 Programmiergerät, auch das verifizieren habe ich genutzt und es wurde genau das geflasht was geflasht werden sollte (oder zumindest wurde das zurückgelesen was geflasht werden sollte)
Zitat von: papa am 07 August 2021, 09:05:18
Welche Arduino Version/Einstellungen hast Du verwendet?
Für das flashen habe ich avrdude verwendet, wenn das mit dem fertigen hex-File Funktioniert dann bekomme ich den Rest auch irgendwie hin, daran sollte es nicht scheitern.... Nur habe ich da genau dasselbe Problem
Zitat von: papa am 07 August 2021, 09:05:18
Kannst Du mal ein Bild vom AVR machen - vielleicht ist das ein falscher.
Man kann das Label auf Bildern nicht erkennen. Hab aber das Label mal abgetippt:
ZitatMega328P
U-TH
Die letzten beiden Zeilen konnte ich nicht entziffern, dürfte aber auch nicht so wichtig sein.

Flole

#445
Kleines Update: Die voreingestellte Baud-Rate ist wohl nicht ganz optimal. Da gibt es immerhin 3.5% Fehlerrate, das ist viel zu viel bei längeren Nachrichten. 19200 funktioniert besser, da sehe ich jetzt auch was. Man könnte auch noch doppelt so schnell werden, alles andere ist aber meiner Meinung nach nicht sinnvoll weil die Fehlerrate zu hoch wird. Nun werde ich mal schauen was beim Pairing passiert und warum das nicht will.

Der Start (mit Pairing-Versuch) sieht so aus:
AskSin++ v5.0.0 (Aug  7 2021 16:50:36)<\r><\n>
Address Space: 32 - 93<\r><\n>
CC init1<\r><\n>
CC Version: 14<\r><\n>
- ready<\r><\n>
Pins: 110<\r><\n>
Activate Cycle Msg<\r><\n>
<- 0F 01 86 10 FFFFFF 000000 06 01 C8 00 00 1A  - 2635<\r><\n>
debounce<\r><\n>
pressed<\r><\n>
released<\r><\n>
<- 1A 02 84 00 FFFFFF 000000 10 FF FF FF FF FF FF FF FF FF FF FF FF 80 01 01 00  - 4513<\r><\n>
<\r><\n>


Kleiner Nachtrag: Frequenztest laufen lassen, funktioniert alles jetzt. Nun kann ich mich um das kleine extra was ich integriert habe kümmern: Ein DS18B20 Temperaturfühler. Mal schauen wie ich den am besten in die Software integriert bekomme.

KurtK

Zitat von: papa am 05 August 2021, 21:53:19
Adapter sollte z.B. dieser
https://shop.myavr.de/index.php?sp=article.sp.php&artID=100075
gehen - kann man sich aber auch einfach selber löten.
Habe bei myAVR mal nachgefragt. Das von dir verlinkte Kit hat leider auch 2,54mm Rastermaß auf beiden Seiten.

Musste eh noch bei Aliexpress bestellen, sodass ich mir dort jetzt passende Stecker bestellt habe und mir ein Kabel zusammenbaue. Wenn jemand noch Interesse an einem Kabel von 2*5 2mm auf 2*5 2,54mm hat, für Ersattung der Versandkosten kann ich noch ein paar Kabel bauen, da es die Stecker nur als 10er Pack gab.
- FHEM auf Intel NUC mit Proxmox -
- FTUI mit FUIP -
- HM, Zigbee,  WLAN -

Flole

Ich habe nun versucht ein neuen Parameter für das Sendeintervall des Temperaturfühlers angelegt und dafür das Reg0 so verändert:


#ifdef RHS3
  DEFREGISTER(Reg0,DREG_CYCLICINFOMSG,MASTERID_REGS,DREG_TRANSMITTRYMAX,DREG_SABOTAGEMSG,DREG_LOWBATLIMIT, 0x21, 0x22)
#else
  DEFREGISTER(Reg0,DREG_CYCLICINFOMSG,MASTERID_REGS,DREG_TRANSMITTRYMAX,DREG_SABOTAGEMSG, 0x21, 0x22)
#endif
class RHSList0 : public RegList0<Reg0> {
public:
  RHSList0(uint16_t addr) : RegList0<Reg0>(addr) {}
  bool Sendeintervall(uint16_t value) const {
      return this->writeRegister(0x21, (value >> 8) & 0xff) && this->writeRegister(0x22, value & 0xff);
  }
  uint16_t Sendeintervall() const {
      return (this->readRegister(0x21, 0) << 8) + this->readRegister(0x22, 0);
  }
  void defaults () {
    clear();
    cycleInfoMsg(true);
    transmitDevTryMax(6);
    sabotageMsg(true);
#ifdef RHS3
    lowBatLimit(22); // default low bat 2.2V
#endif
    Sendeintervall(3600);
  }
};


Muss ich nun die Klasse TLEPosition kopieren und hier measure und interval anpassen sodass interval das oben angegebene Sendeintervall zurückgibt und measure dann misst? Aber wo kann ich denn dann den gemessenen Wert an die Zentrale senden? Und wie muss ich meine zweite TLEPosition Klasse denn dann "einbinden" sodass sie auch referenziert bzw. benutzt wird?

Insgesamt scheint es irgendwie wenig bis gar keine Dokumentation dazu zu geben wie die Library benutzt werden soll/muss, oder ich habe die noch nicht gefunden.

papa

Nur ne kurze Antwort - weil keine Zeit.

Doku ist schlecht - siehe oben

Wenn Du neue Register in ein Gerät einführen willst, muss auch das entsprechende Gerät im Addin für FHEM angepasst werden. Das ist aber auch nicht dokumentiert - bevor Du fragst ;-) Sollte aber aus dem existierenden Sachen zu sehen sein. Du solltest bei Änderungen dann ein neues Gerät mit eigener HMID anlegen.

Welches Sendeinterval willst Du eigentlich anpassen ? Der Fensterkontakt sendet doch immer bei Änderung bzw. alle 20 Stunden den aktuellen Status.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Flole

#449
Das Addin anpassen ist easy, kein Problem.

Ich habe einen DS18B20 Temperaturfühler zusätzlich eingebaut, der muss natürlich ausgelesen und gesendet werden (ich weiß, Addin wieder anpassen um die Datenpunkte zu bekommen ;) ). Das Interval in dem das passiert wollte ich konfigurierbar machen, dafür das Sendeintervall.
Was ich jetzt nicht sehe/verstehe: Wie mache ich nun eine Klasse um den DS18B20 auszulesen bzw. binde die ein? Ich dachte daran die TLEPosition zu kopieren, measure() misst dann die Temperatur (und speichert die wo genau hin?) und interval() gibt das oben eingestellte Interval zurück.

Nur wenn ich jetzt die Klasse kopiere und sie temperatureSensor nenne, wie integriere ich das dann hier wo die TLEPosition referenziert wird (oder wo muss das eigentlich hin?):
  typedef StateGenericChannel<TLEPosition,HALTYPE,List0Type,List1Type,List4Type,PEERCOUNT> BaseChannel;

Einfach die Klasse kopieren und umbenennen wird wohl kaum ausreichend sein, das muss doch irgendwo noch angegeben werden das es die auch noch gibt. Oder nehme ich dafür einfach die aktuelle measure-Methode, erweitere die und gebe anstelle von 0 beim interval() mein gewünschtes interval zurück? Aber auch da die Frage/das Problem: Wo muss die Temperatur hin geschrieben werden sodass sie auch übermittelt wird?

Alternativ gibt es ja schon das hier, aber auch das zu integrieren ist wohl nicht einfacher: https://github.com/TomMajor/SmartHome/blob/master/HB-UNI-Sensor-Blitz/Arduino/HB-UNI-Sensor-Blitz/Sens_DS18X20.h