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
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
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
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
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
Mittlerweile sind die restlichen Teile per Post gekommen.
20240313_112550.jpg
20240313_112604.jpg
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
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
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
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
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.
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.
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
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
Hat denn jemand von Euch einen originalen HMW-IO-12-FM? ...nur so zum Vergleich.
Gruß,
Thorsten
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
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?
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
https://github.com/MCUdude/MightyCore (https://github.com/MCUdude/MightyCore)
Ich habe den einfacheren Weg gewählt.
Screenshot 2024-03-25 210057.png
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