FB Betty in FHEM einbinden

Begonnen von KölnSolar, 16 März 2017, 09:06:18

Vorheriges Thema - Nächstes Thema

KölnSolar

szoller, probier mal die Version. Sollte für die swisscom passen.

@telekatz: ja danke. schicke es per PN, da nicht veröffentlichungswürdig  :-[
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

KölnSolar

Hi Telekatz,

an ne PN kann ich gar nix anhängen  :o, daher also doch hier die relevanten Dateien mit meinen Änderungen. Das ist jetzt die version mit t1mr0 = 2* 15000000/freq, also nur ein interrupt nach 2 Zyklen.
Den "PWM-init" hab ich bewusst in lirc_send eingebaut, um Wechselwirkungen möglichst auszuschließen.
Danke&Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Telekatz

Du rufst den irIRQ viel zu oft auf. Der Sinn darin Hardware PWM zu verwenden ist ja der, nur noch zu den Zeitpunkten einen Interrupt zu benötigen, an denen die Modulation ein oder ausgeschaltet wird (da wo das IR Signal zwischen Pulse und Space wechselt).

Du zählst immernoch b_len im Interrupt hoch bis der Wert von cycles erreicht wird und rufst dann irEncoder auf, um den nächsten cycles Wert zu berechnen. Du solltest allerdings den nächsten Reloadwert vom Timer immer so berechnen, dass der Interrupt erst dann wieder aufgerufen wird, wenn der aktuelle IR Pulse bzw. Space vorbei ist und der nächste Aufruf von irEncode notwendig ist.

KölnSolar

Ahhh, verstehe. Guck ich mal wie ich das umsetze. Aber für die Funktion des B&O wird das doch keinen Einfluss haben, oder ? Was denkst Du, wo da mein Problem liegen könnte ? Zu hohe Frequenz für Diode, Duty Cycle....
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

szoller

#94
Danke, mit der Schweizer-Firmware klappts!

Mal schauen, wie ich das Ding zunächst für meine Geräte angelernt bekomme, bevor ich weitere Spielchen versuche  8)

Nochmals danke!

Was mich reizen würde, wäre die Möglichkeit, mit der Betty über Funk Befehle an FHEM zu senden, wenn möglich auch mit Bestätigung á la ACK von FHEM,
eventuell auch die Anzeige von Werten von FHEM wie zB. ne Temperatur, wenn das überhaupt möglich ist.

Beispiel wäre ja ein Menüpunkt zur Heizungssteuerung meiner Max-Thermostate  ;D Oder Ausgabe von Alarmmeldungen von FHEM mit akustischem Signal....

Vielleicht böte sich ja dann auch ein FHEM-Modul als Gegenstück an.

Ich meine, die Betty ist ja zB. bei Amazon immer noch für 10€ inkl. Versand verfügbar  ;D

Aber ich wart mal ab, was ihr so hinbekommt, ich versteh von Programmierung eher wenig...

Telekatz

Zitat von: KölnSolar am 09 Mai 2017, 21:46:27
Ahhh, verstehe. Guck ich mal wie ich das umsetze. Aber für die Funktion des B&O wird das doch keinen Einfluss haben, oder ? Was denkst Du, wo da mein Problem liegen könnte ? Zu hohe Frequenz für Diode, Duty Cycle....
Doch das hat Einfluss auf B&O da aufgrund der hohen Trägerfrequenz auch der Interrupt zu oft aufgerufen wird.

KölnSolar

Das war ja mal einfach  ;D im irEncode jeweils den timer auf PWMMR0 * cycles setzen und neu starten und beim IRQ den irEncoder aufrufen. DEUTLICHE Qualitätsverbesserung beim Samsung-Protokoll(vorher hatte ich immer wieder kein IR-SIgnal, was ich auf die Diodenreparatur schob). B&O leider negativ  :'( Frequenz mit 454.545 sollte passen, Protokoll hab ich zig mal verifiziert, duty cycle?, Diode?, Genauigkeit der Pulse(werden ja immer etwas länger durch die Abarbeitung des irEncoder bis der nächste timer gesetzt bzw. der Output(Pulse/Space) verändert wird). Wenn ich doch nur messen könnte, was die Betty und die Original-FB da rausfeuern....
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

KölnSolar

so, endlich wieder Neuigkeiten: Ich habe die aculfw mehr schlecht als recht in Boop integriert und habe heute das erste mal IT-V1 mit gering modifizierter aculfw zum schalten gebracht  ;D
Größte und noch immer nicht begriffene Hürde: Im Gegensatz zur aculfw, wo High=High und Low=Low ist, musste ich für die Betty ein Low auf den Sendepin legen, um einen Highpuls zu erzeugen  :o Irre. Wenn da mal jemand eine Erklärung für mich hat....

Nun geht es an die Empfangsroutine...

@Telekatz: Gibt es einen Grund, dass für Boop die SSP-Anbindung und nicht das einfachere(zur culfw harmonischere) SPI gewählt wurde ? Sonst würd ich, um Modifikationen an der CC1100.h der culfw zu sparen, evtl. auf SPI umbauen.

Keine Ideen zu meinem B&O-Thema ?

Schöne Pfingsten
Markus

RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

KölnSolar

Da wohl keiner mit mir reden mag, führe ich mal Selbstgespräche.
ZitatIm Gegensatz zur aculfw, wo High=High und Low=Low ist, musste ich für die Betty ein Low auf den Sendepin legen, um einen Highpuls zu erzeugen  :o Irre. Wenn da mal jemand eine Erklärung für mich hat....
Betty ist unschuldig. Boop war der "Bösewicht. Die PAtable wurde falsch befüllt. Ich hab das jetzt korrigiert. Sämtliche "alten" RF-Funktionalitäten scheinen auch zu funktionieren.

Nun sollte das Senden für alle 433MHz OOK-Protokolle  funktionieren. Hier und da vielleicht noch ein Stellschräubchen drehen. Möglicherweise auch 868er wie FS20 ...... Ich bau jetzt mal ein pendant zur ir_lirc, wo man dann dem Tastencode eine aculfwsendefunktion mit rawCode zuweisen kann....
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Per

Zitat von: KölnSolar am 06 Juni 2017, 01:41:03Da wohl keiner mit mir reden mag, führe ich mal Selbstgespräche.
Nennen wir es Monolog, weil lesen tu ich ja. Ich kann dir halt nur nicht helfen. Höchstens motivieren ;).

Gibt es eigentlich einen Trick, die FB "enblock" anzulernen (tausende billige UniversalFB können das auch) oder muss ich wirklich jede (!) Taste einzeln anlernen?

KölnSolar

MOTIVIERT  ;D

ZitatGibt es eigentlich einen Trick, die FB "enblock" anzulernen (tausende billige UniversalFB können das auch)
Leider nein
Zitatoder muss ich wirklich jede (!) Taste einzeln anlernen?
leider ja.

Aber möglicherweise  ist Dein Gerät ja bereits im Standard implementiert ? Musst Du mal nach Deinem Gerät googeln und versuchen rauszufinden, welches Protokoll zu senden ist.

Und außerdem ist es ja ein Bastelprojekt. Also nicht zu vergleichen mit einer Uni-FB für 9,99  ;D

Wenn Du ein wenig computern kannst/möchtest, könntest Du Dir auch das passende Protokoll und die Codes aus LIRC heraussuchen. Bei 38kHz sollte eine Implementierung dann einfach sein. Ich unterstütze gerne. Ggfs. könnte ich dann auch einen compile für Dich machen....
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

KölnSolar

#101
bräuchte dann mal kurze C-Hilfe  :-[
Das Problem war keins, sondern an einer anderen Stelle, die ich nun korrigiert habe
Und nun kann man simpel über ein Include seine RF-Tastenbelegung mit den raw codes definieren  ;D IT V1/V3 funktionieren getested. HE und irgendwelche Derivate, selbst mit Quad-Code, sollten problemlos funktionieren  ;D
Nun geht es aber wirklich an den Empfang....
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

KölnSolar

JAAAAAA, Betty hat soeben das erste mal meine B&O geschaltet  ;D also IR mit 455kHz geht  ;D

Nach allen möglichen Gedanken, googeln etc. hab ich dann einfach mal einen Sendebefehl kodiert mit Nutzung der bereits beschriebenen PWM-Funktionalität. Die Pulse u. Spaces habe ich aber nicht über die Programmlogik des LIRC-Moduls gesteuert, sondern deren Abfolge hart kodiert.

Jetzt muss ich also den Fehler im Encoder suchen, aber wenn man einen Anhaltspunkt hat....

Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

KölnSolar

Fehler gefunden - B&O voll in Betty implementiert  ;D  ;D  ;D  Endlich nur noch eine FB für alles. So soll es sein  ;D

Problem war die Programmierung des LIRC-Encoders in Boop. Es ließ nur Zyklen(Pulslänge) bis 255(0,5ms) zu während das B&O-Protokoll bis zu 8.181(18ms) benötigt. Wer denkt schon an so was  ::)

Leider ist auch die Diode der 2. Betty bei den Tests abgeraucht :'(, so dass ich nun kein "Original" mehr habe. Wenn noch jemand das 16er-Pack im Keller verstauben lässt: Ich bin dankbarer Abnehmer  einer Teilmenge ;)
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

pc1246

Hallo Markus
Glueckwunsch zur Vollendung! Das mit den Dioden ist doof! Kann man die nicht ersetzen?
Betty's gibt es noch bei Amazon https://www.amazon.de/gp/offer-listing/B000MIO6L4/ref=dp_olp_0?ie=UTF8&condition=all .
Gruss Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly