FB Betty in FHEM einbinden

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

Vorheriges Thema - Nächstes Thema

KölnSolar

fast bin ich durch. Der Linker meckert
../../clib/ttydata.o: In function `callfn':
ttydata.c:(.text+0x74): undefined reference to `fntab'

code(aculfw)
typedef struct _fntab {
  unsigned char name;
  void (* const fn)(char *);
} t_fntab;

#define __LPM(addr)         *(addr)
#define __LPM_word(addr)    *(addr)

extern const PROGMEM t_fntab fntab[];
uint8_t
callfn(char *buf)
{
  for(uint8_t idx = 0; ; idx++) {
    uint8_t n = __LPM(&fntab[idx].name);
    void (*fn)(char *) = (void (*)(char *))__LPM_word(&fntab[idx].fn);


fntab ist aber doch gar keine function und definiert sollte doch auch alles sein. Ich seh nur Sterne...
Liegts am avr PROGMEM ?
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 hast fntab mit dem Schlüsselwort extern hier nur deklariert. Dadurch weiß der Compiler, dass es diese Variable irgendwo geben wird und meckert nicht.
Wenn fntab aber nirgendwo im Code definiert wird, meckert der Linker, weil er die Variable nicht findet. 

KölnSolar

Danke, da hätt ich aber mal selber drauf kommen können  :-[
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

Ich muss hier doch mal ne Anfängerfrage stellen...  :(

Ich flashe nun zum ersten Mal etwas über ein serielles Interface, habe mir da auch schon die Beschaltungen rausgesucht (Servicestecker) und habe insgesamt vier Adern miteinander verbunden

Adapter - Betty
TX - TX
RX - RX
GND - GND
VCC - 3V

Betty-Heaven meldet immer RX Timeout, Synchronisation gescheitert...
Die andren Bezeichnungen am Adapter (hat 6 Pole) kann ich denen der Betty nicht zuordnen (DTR und CTS)

Ich glaube, den Bootloader hab ich aktiviert eINT mit GND gebrückt, dann dazu noch Reset, die Betty startet neu und Display ist zumindest aus.

Habe nun in einem andren Artikel gelesen, dass TX - RX und RX - TX zugeordnet werden müsse, dann sagt Betty Heaven "Starte Backup" und nix passiert mehr...

Was mach ich falsch?


Und achja... hat jemand noch die kompilierte Firmware?

KölnSolar

Du musst Rx und Tx kreuzen.
ZitatIch glaube, den Bootloader hab ich aktiviert eINT mit GND gebrückt, dann dazu noch Reset, die Betty startet neu und Display ist zumindest aus.
so soll es sein. Reset dann wieder lösen(ich löse danach auch eINT u. nach dem flashen eine kurze Verbindung Reset-GND z. Restart)
ZitatUnd achja... hat jemand noch die kompilierte Firmware?
Liegt im Trunk. ich hab sie aber mal angehangen
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

Danke! Was muss ich außer RX und TX denn noch zwingend anschließen?

KölnSolar

wie Du schriebst: GND U. VCC.
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

Ich danke dir, werds erneut probieren  :)

szoller

#83
Ich glaub ich bin zu doof dafür... habs via Restore geflasht, nun reagiert die Betty nicht mehr auf Tasten (auch Menu nicht), einzige Reaktion ist, dass die Displaybeleuchtung angeht, wenn ich sie bewege...

Das Betty-Bild mit der Angabe 0.91 sehe ich, da hörts aber auch auf  ::)

Nachtrag:
Die Beleuchtung scheint doch von einem Tastendruck abhängig zu sein, ist aber scheinbar total zufällig, manchmal gehts Licht an, wenn ich die 5 drücke, manchmal reagierts nicht, dafür bei der 8, 1 oder AV-Taste...

KölnSolar

Ich hab die vorkompilierte Version ja nie geflasht. Bei der selbst kompilierten Version geht die Beleuchtung nur im Betty-Menü oder bei Auswahl eines IR-Encoders mittels der A-B-C-D-Tasten.
Was das Reaktionsvermögen anbelangt: Dass die Betty läuft, siehst Du an der Uhrzeit rechts unten und der Tastendruck äußert sich durch ein kurzes Anzeigen eines kleinen IR-Symbols links neben der Batterieanzeige  ;)
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

Telekatz, ich bräuchte mal wieder Deine Hilfe. Mittlerweile habe ich den compile mit viel Gewürge mit der culfw hinbekommen. Beim Test bin ich dann aber erst einmal wieder bei meinem alten B&O-Problem angelangt.

Ich habe etwas aufgeräumt und in der Variante mit PWM für die Trägerfrequenz und dem timer1 fürs Protokoll ist mir aufgefallen, dass das auch nur bis ca. 350 kHz funktioniert. Höhere Frequenzen lassen die Betty sterben. Ich hab dann einfach den timer1 verdoppelt und beim IRQ entsprechend. Dann wird zwar das Protokoll etwas ungenauer, aber mit Samsung funktioniert es. B&O funktioniert mit duty cycles 25,33,50 leider nicht, also es läuft durch, aber die B&O reagiert nicht. Dabei ist mir dann die Frage gekommen, dass PWM und timer1 ja eigentlich auseinanderlaufen, also synchronisiert werden müssten. Wie könnte man das machen oder ist meine Variante ohne timer1, aber mit Interrupt für PWMMR0 nicht doch geeigneter ? Oder liegt es vielleicht doch nur an der Diode ?

Ich stürze mich jetzt mal wieder in die culfw....
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

Das heißt, das Ding btw. die Firmware kann eigentlich nix?

Uhrzeit läuft, aber beim Batteriesymbol wird nix angezeigt bei Tastendruck...

Schade, dachte Betty Boob hätte es zu nem brauchbaren Stadium geschafft :(

KölnSolar

#87
das musst Du aber sofort streichen  >:(
Betty mit Boop kann quasi alles das, was eine Universal-IRfernbedienung kann. Alles weitere ist tatsächlich eher im Versuchsstadium, sprich es geht eine Menge, aber derzeit noch ohne sinnvollen Einsatz. Mit meiner kleinen Anpassung(so ungefähr Post #20) lassen sich IT V1-Codes in die firmware einbinden und senden.(Geht super und ich hab nur noch eine FB ;D) Und meine zwei Projekte sind die Einbindung der ungewöhnlichen 455kHz-IR-Frequenz und der culfw. Sollte ich das schaffen :-\ ist die Betty ein CUL mit IR und Bild-, Sound- u. Sprachausgabe......Edit:(natürlich dann noch ohne "wired" Anbindung an FHEM)
Edit:
Zitatbeim Batteriesymbol wird nix angezeigt bei Tastendruck...
Vielleicht hast Du diese Schweizer Variante ? Kommst Du über die Betty-Taste ins Betty-Menü und dann ins Untermenü "Info" ? Dort sähest Du ein paar Angaben über die Hardware.
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

Was davon soll ich streichen?  8)

na wenn die Funktion der Universalfernbedienung schon gegeben ist, wär ich ja schon froh, dann kann Boop ja schon fast mehr als das was bei mir im Lieferzustand drauf war  ;D

Könnte mir dann jemand eine "richtige" Binary bzw. kompilierte Version zur Verfügung stellen?

Nein, Menu klappt nicht, Tastendrücke ändern maximal die Beleuchtung vom Display, mehr geht nicht.

Und ja, es ist die Schweizer-Variante, zumindest steht Swisscom drauf  ::)

Hoffe doch, dass ich dafür auch eine Bin finde...

Telekatz

Zitat von: KölnSolar am 08 Mai 2017, 22:42:42
Ich habe etwas aufgeräumt und in der Variante mit PWM für die Trägerfrequenz und dem timer1 fürs Protokoll ist mir aufgefallen, dass das auch nur bis ca. 350 kHz funktioniert. Höhere Frequenzen lassen die Betty sterben. Ich hab dann einfach den timer1 verdoppelt und beim IRQ entsprechend. Dann wird zwar das Protokoll etwas ungenauer, aber mit Samsung funktioniert es. B&O funktioniert mit duty cycles 25,33,50 leider nicht, also es läuft durch, aber die B&O reagiert nicht. Dabei ist mir dann die Frage gekommen, dass PWM und timer1 ja eigentlich auseinanderlaufen, also synchronisiert werden müssten. Wie könnte man das machen oder ist meine Variante ohne timer1, aber mit Interrupt für PWMMR0 nicht doch geeigneter ? Oder liegt es vielleicht doch nur an der Diode ?
Kannst du deine Änderungen mal mal veröffentlichen, dann schau ich mir das mal an.