HMW-IO-12-FM

Begonnen von maxx3105, 09 März 2024, 12:05:49

Vorheriges Thema - Nächstes Thema

maxx3105

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

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

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?

Du darfst diesen Dateianhang nicht ansehen.
Du darfst diesen Dateianhang nicht ansehen. 

LG Marxkus

Thorsten Pferdekaemper

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
FUIP

loetmeister

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

maxx3105

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.
Du darfst diesen Dateianhang nicht ansehen.

loetmeister

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

maxx3105

Mittlerweile sind die restlichen Teile per Post gekommen.
Du darfst diesen Dateianhang nicht ansehen.
Du darfst diesen Dateianhang nicht ansehen.

Thorsten Pferdekaemper

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
FUIP

Ralf9

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
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Thorsten Pferdekaemper

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
FUIP

maxx3105

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

Thorsten Pferdekaemper

FUIP


Ralf9

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
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

loetmeister

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

Thorsten Pferdekaemper

Hat denn jemand von Euch einen originalen HMW-IO-12-FM? ...nur so zum Vergleich.
Gruß,
  Thorsten
FUIP

Ralf9

#15
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
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

maxx3105

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?

Thorsten Pferdekaemper

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
FUIP

maxx3105

#18
https://github.com/MCUdude/MightyCore

Ich habe den einfacheren Weg gewählt.

Du darfst diesen Dateianhang nicht ansehen.

loetmeister

#19
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