FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: maxx3105 am 09 März 2024, 12:05:49

Titel: HMW-IO-12-FM
Beitrag von: maxx3105 am 09 März 2024, 12:05:49
Hallo Miteinander,

ich habe mir mal die Arbeit gemacht und einen Ersatz für den mittlerweile ausgelaufenen HMW-IO-12-FM erstellt.
https://github.com/maxx3105/HMW-IO-12-FM (https://github.com/maxx3105/HMW-IO-12-FM)

Bei der Firmware wollte ich eigentlich weitestgehend beim Original bleiben. Bei meiner Suche bin ich darauf gestossen.
https://github.com/kc-GitHub/HM485-Lib/tree/thorsten/HMW-IO-12-FM (https://github.com/kc-GitHub/HM485-Lib/tree/thorsten/HMW-IO-12-FM)

Anscheinend funktioniert das nicht so wie erwartet. Mangels entsprechender Programmier-Skills werde ich wohl auf die hbw_sen_sc_12_dr Firmware ausweichen müssen oder gibt es eine funktionierende homebrew Firmware?

HMW-IO-12-FM_Bottom.png
HMW-IO-12-FM_Top.png 

LG Marxkus
Titel: Aw: HMW-IO-12-FM
Beitrag von: Thorsten Pferdekaemper am 11 März 2024, 20:46:47
Hi,
ich glaube, der HBW-Sen-SC-12 kann nur digitale Eingänge, aber keine Ausgänge.
Allerdings wird das dem HMW-IO-12-FM natürlich nicht so ganz gerecht, da der anscheinend sowohl digitale Ein- als auch Ausgänge kann und dazu auch noch die üblichen Einstellungen und Peerings. Das ist halt gar nicht so einfach nachzubauen.
...aber vielleicht hat Thomas "loetmeister" Lust dazu, das Ding zum Fliegen zu bringen. Interessant ist es allemal.
Gruß,
  Thorsten
Titel: Aw: HMW-IO-12-FM
Beitrag von: loetmeister am 12 März 2024, 10:59:22
Moin.
Wie sollten sich denn die Eingänge verhalten?
Auf jeden Fall bitte mit der aktuellen lib arbeiten: https://github.com/ThorstenPferdekaemper/HBWired

Gruß Thomas
Titel: Aw: HMW-IO-12-FM
Beitrag von: maxx3105 am 12 März 2024, 16:14:50
So wie beim Original hätte ich gesagt. Bei Eingang als Schalter oder Taster und bei Ausgang Digital oder Analog. Bei Bedarf könnte ich eine Platine zukommen lassen.
Screenshot 2024-03-12 160518.png
Titel: Aw: HMW-IO-12-FM
Beitrag von: loetmeister am 12 März 2024, 23:00:14
Ok, hab mir mal kurz die HMW-IO-12-FM XML angeschaut... wenn du genau das Device nachbauen willst müsste man sich da entsprechend orientieren. Wobei ich da nur digitale Ein-/Ausgänge gesehen habe, keine Analogen.
Mit dem xml <special_parameter id="BEHAVIOUR"> um die UI dynamisch zu ändern hab ich noch nicht richtig gearbeitet... (Die Umschaltoption Ein-/Ausgang - geht das auch in FEHM? Ich hab kein passendes Device :) )

Wenn du eine etwas abgeänderte Version erstellst, dann könntest du auf die bestehenden Libs zurückgreifen:
INPUT:
HBWKey.h (+ HBWLinkKey.h fürs peering)

OUTPUT:
HBWSwitchAdvanced.h (+ HBWLinkSwitchAdvanced.h fürs peering)

Gruß,
Thomas
Titel: Aw: HMW-IO-12-FM
Beitrag von: maxx3105 am 13 März 2024, 23:09:58
Mittlerweile sind die restlichen Teile per Post gekommen.
20240313_112550.jpg
20240313_112604.jpg
Titel: Aw: HMW-IO-12-FM
Beitrag von: Thorsten Pferdekaemper am 15 März 2024, 19:08:17
Zitat von: loetmeister am 12 März 2024, 23:00:14Mit dem xml <special_parameter id="BEHAVIOUR"> um die UI dynamisch zu ändern hab ich noch nicht richtig gearbeitet... (Die Umschaltoption Ein-/Ausgang - geht das auch in FEHM? Ich hab kein passendes Device :) )
Ich glaube, dass das funktioniert. ...war damals ein bisschen frickelig, müsste aber gehen.
Gruß,
  Thorsten
Titel: Aw: HMW-IO-12-FM
Beitrag von: Ralf9 am 16 März 2024, 12:30:57
Hallo Marxkus,

zu was benötigst Du die Ausgänge am HMW-IO-12-FM? Ohne Treiber kannst Du an den Ausgängen nur LEDs schalten.
Ohne Ausgänge wirds deutlich einfacher, da gibts z.B. den HBW-Sen-Key-12
https://wiki.fhem.de/wiki/HomeMatic_Wired#Aktoren_/_Sensoren

Gruß Ralf
Titel: Aw: HMW-IO-12-FM
Beitrag von: Thorsten Pferdekaemper am 16 März 2024, 16:13:00
Hi,
jetzt bekomme ich doch so langsam mal wieder Lust, ein bisschen HMW/HBW zu basteln. Ich versuche mal, ein Original-HMW-IO-12-FM zu bekommen, um mal zu überprüfen, ob das in FHEM tatsächlich funktioniert.
...und um mal einen Vergleich zu haben.
Gruß,
  Thorsten
Titel: Aw: HMW-IO-12-FM
Beitrag von: maxx3105 am 17 März 2024, 16:45:55
Zitat von: Ralf9 am 16 März 2024, 12:30:57Hallo Marxkus,

zu was benötigst Du die Ausgänge am HMW-IO-12-FM? Ohne Treiber kannst Du an den Ausgängen nur LEDs schalten.
Ohne Ausgänge wirds deutlich einfacher, da gibts z.B. den HBW-Sen-Key-12
https://wiki.fhem.de/wiki/HomeMatic_Wired#Aktoren_/_Sensoren

Gruß Ralf

Hallo Ralf, ich habe mehrere GIRA 6 fach Taster die ich damit betreibe die haben eben 6 Taster und 6 Led's.

Lg Markus
Titel: Aw: HMW-IO-12-FM
Beitrag von: Thorsten Pferdekaemper am 17 März 2024, 19:29:48
Ist das der hier?
https://www.elektro-wandelt.de/Gira-2003100-Tastsensor-2-3-fach-24V-potenzialfrei-mit-Beschriftungsfeld-Klar-Reinweiss-glaenzend.html
...allerdings ist das für System 55 E2 und nicht für System 55.
Titel: Aw: HMW-IO-12-FM
Beitrag von: maxx3105 am 17 März 2024, 19:53:02
Zitat von: Thorsten Pferdekaemper am 17 März 2024, 19:29:48Ist das der hier?
https://www.elektro-wandelt.de/Gira-2003100-Tastsensor-2-3-fach-24V-potenzialfrei-mit-Beschriftungsfeld-Klar-Reinweiss-glaenzend.html
...allerdings ist das für System 55 E2 und nicht für System 55.


Ja genau.
Titel: Aw: HMW-IO-12-FM
Beitrag von: Ralf9 am 18 März 2024, 01:12:44
Zitat von: maxx3105 am 17 März 2024, 16:45:55Hallo Ralf, ich habe mehrere GIRA 6 fach Taster die ich damit betreibe die haben eben 6 Taster und 6 Led's.
Ja, dafür passt der HMW-IO-12-FM.
Eine Firmware für den HMW-IO-12-FM zu entwickeln ist wahrscheinlich recht aufwändig.
Da reicht auch ein Modul mit fest 6 Eingängen und 6 Ausgängen (HBW-IO-6-Sw6), damit wird die Firmware deutlich einfacher.

Gruß Ralf
Titel: Aw: HMW-IO-12-FM
Beitrag von: loetmeister am 19 März 2024, 22:02:41
Hi,

ja, das stimmt. Mit den aktuellen Lib wäre es möglich, 6 Key und 6 Sw Kanäle... halt ohne der dynamischen Input/Output Konfiguration.
Keine Ahnung was der richtige Name wäre ... HBW-IO-6-Sw6 oder HBW-IO-Key6-Sw6.  ;D

HBW-LC-Sw-8_AdvancedPeering wäre ein guter Ausgangspunkt. Dem Device dann noch 6 Key Kanäle, wie in HBW-SC-10-Dim-6 verwendet hinzufügen.
#include <HBWLinkKey.h>
#include <HBWKey.h>
https://github.com/ThorstenPferdekaemper/HBWired/tree/master/HBW-LC-Sw-8_AdvancedPeering


PS: Wenns wieder Regnet könnte ich mal ein Entwurf erstellen...  Wobei die "State Machine" auch noch ein update braucht... die verhält sich aktuell nicht wie das Original  ;)

Gruß,
Thomas
Titel: Aw: HMW-IO-12-FM
Beitrag von: Thorsten Pferdekaemper am 23 März 2024, 10:19:20
Hat denn jemand von Euch einen originalen HMW-IO-12-FM? ...nur so zum Vergleich.
Gruß,
  Thorsten
Titel: Aw: HMW-IO-12-FM
Beitrag von: Ralf9 am 24 März 2024, 16:04:40
ich habe von den HMW-IO-12-FM 2 Stück. Ich habe sie mit Treibern für Relais in Hutschinengehäuse eingebaut.
Die events bei delayed peerings funktionieren nicht richtig.
Das event, das kommen sollte, wenn bei einem ondelay peering das Licht wieder ausgeht, kommt nur ab und zu.
Das ist auch abhängig von der Anzahl der Ausgänge mit peerings.

Gruß Ralf
Titel: Aw: HMW-IO-12-FM
Beitrag von: maxx3105 am 25 März 2024, 19:31:16
Ich habe versucht einen anderen Sketch auf meine HMW-IO-12-FW Platine zu laden und habe dazu den ATmega32 versucht zu integieren in die hardware.h
/*
 * hardware.h
 *
 *  Created on: 23.05.2018
 *      Author: loetmeister.de
 */

#ifndef hardware_h
#define hardware_h

//#define _HAS_BOOTLOADER_    // enable bootlader support of the device. BOOTSTART must be defined as well

/* Start Boot Program section and RAM address start */
#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__)
// Boot Size 2048 words
#define BOOTSTART (0x3800)
#endif


#if defined(__AVR_ATmega168__)
#define RAMSTART (0x100)
#define NRWWSTART (0x3800)
#elif defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__)
#define RAMSTART (0x100)
#define NRWWSTART (0x7000)
#elif defined (__AVR_ATmega644P__)
#define RAMSTART (0x100)
#define NRWWSTART (0xE000)
#elif defined(__AVR_ATtiny84__)
#define RAMSTART (0x100)
#define NRWWSTART (0x0000)
#elif defined(__AVR_ATmega1280__)
#define RAMSTART (0x200)
#define NRWWSTART (0xE000)
#elif defined(__AVR_ATmega8__) || defined(__AVR_ATmega88__)
#define RAMSTART (0x100)
#define NRWWSTART (0x1800)
#elif defined (__AVR_ATmega32__)
#define RAMSTART (0x100)
#define NRWWSTART (0x3800)
#define BOOTSTART (0x3800)

#endif


/* sleep macro. Timer for millis() must keep running! Don't sleep too deep... */
#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__)
// "idle" sleep mode (mode 0)
#include <avr/sleep.h>
#define POWERSAVE() set_sleep_mode(0); \
                    sleep_mode();
//#elif defined (__AVR_ATmega644P__)... // TODO: add others
#endif

#endif /* hardware */

aber ich bekomme immer die selbe Fehlermeldung.
c:\Users\marku\Documents\Arduino\libraries\HBWired\src/HBWired.h:259:38: error: 'BOOTSTART' was not declared in this scope
  void (*bootloader_start) = (void *) BOOTSTART;   // TODO: Add bootloader?
                                      ^~~~~~~~~

Sind in die Bibliothek die angeführten ATmegas integiert?
Titel: Aw: HMW-IO-12-FM
Beitrag von: Thorsten Pferdekaemper am 25 März 2024, 20:46:00
Ich glaube, dafür muss der ATmega32 erst einmal in die Arduino-IDE eingebunden werden. (...unter der Annahme, dass Du es damit versuchst.)
Hier hat mal jemand was dazu aufgeschrieben:
https://www.instructables.com/Using-Atmega32-with-Arduino-IDE/
Hilft das?

...oder wir programmierst Du die Dinger normalerweise?

Gruß,
  Thorsten
Titel: Aw: HMW-IO-12-FM
Beitrag von: maxx3105 am 25 März 2024, 20:57:05
https://github.com/MCUdude/MightyCore (https://github.com/MCUdude/MightyCore)

Ich habe den einfacheren Weg gewählt.

Screenshot 2024-03-25 210057.png
Titel: Aw: HMW-IO-12-FM
Beitrag von: loetmeister am 25 März 2024, 22:40:37
Hi,

scheint als hatte ich nur in der HBWired.cpp aber nicht HBWired.h Datei den Fall des nicht definierten BOOTSTART abgefangen...  O:-)
Kommentiere einfach mal aus:
void (*bootloader_start) = (void *) BOOTSTART;  // TODO: Add bootloader?
(in libraries\HBWired\src/HBWired.h:258:38:)

habs kurz mit Mega32u4 kompiliert, das läuft dann durch.


EDIT:
Es spricht natürlich auch nix dagegen hardware.h mit dem ATmega32 zu ergänzen. Auch wenn ich keinen Bootloader nutze...

z.b. so (angenommen 0x3800 is die Startadresse des bootloaders)
/* Start Boot Program section and RAM address start */
#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__) || defined (__AVR_ATmega328PB__)
  // Boot Size 2048 words
  #define BOOTSTART (0x3800)
#elif defined (__AVR_ATmega32__)
  #define BOOTSTART (0x3800)
#endif

Gruß,
Thomas