MAX-Cube + 2 Zwischenstecker 19,99€ bei Medion

Begonnen von chris1284, 29 August 2017, 08:29:13

Vorheriges Thema - Nächstes Thema

gloob

Zitat von: RaspiLED am 04 September 2017, 20:03:49
Hi,
Bestellt zwischen Post 2 und 3 an Tag 1 des Fehlpreises.

Da darf man nicht lange warten. Ist wie beim Ausverkauf der Telekom am Freitag.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

Klaus0815

Hallo Papa,

Wollte es gerade mal testen, sehr weit bin ich leider nicht gekommen:

- ATMega32 Support installiert
- TimerOne, EnableInterrupt und Low Power installiert
- dann leider die unten angehängte Fehlermeldung

Habe momentan noch die IDE 1.6.5, , welche benutzt DU?

Viele Grüße

Klaus


Build-Optionen wurden verändert, alles wird neu gebaut
In file included from HM-LC-Sw1-Pl.ino:21:0:
C:\Users\KR\Documents\Arduino\libraries\AskSinPP/AskSinPP.h:22:12: error: 'uint8_t' does not name a type
     inline uint8_t digitalPinToInterrupt(uint8_t pin) { return pin == 11 ? 1 : 0; } // D2 -> 0 && D3 -> 1
            ^
In file included from C:\Users\KR\Documents\Arduino\libraries\AskSinPP/Activity.h:11:0,
                 from C:\Users\KR\Documents\Arduino\libraries\AskSinPP/AskSinPP.h:34,
                 from HM-LC-Sw1-Pl.ino:21:
C:\Users\KR\Documents\Arduino\libraries\AskSinPP/Radio.h: In member function 'void as::Radio<SPIType, GDO0>::enable()':
C:\Users\KR\Documents\Arduino\libraries\AskSinPP/Radio.h:561:47: error: there are no arguments to 'digitalPinToInterrupt' that depend on a template parameter, so a declaration of 'digitalPinToInterrupt' must be available [-fpermissive]
     attachInterrupt(digitalPinToInterrupt(GDO0),isr,FALLING);
                                               ^
C:\Users\KR\Documents\Arduino\libraries\AskSinPP/Radio.h:561:47: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
C:\Users\KR\Documents\Arduino\libraries\AskSinPP/Radio.h: In member function 'void as::Radio<SPIType, GDO0>::disable()':
C:\Users\KR\Documents\Arduino\libraries\AskSinPP/Radio.h:564:47: error: there are no arguments to 'digitalPinToInterrupt' that depend on a template parameter, so a declaration of 'digitalPinToInterrupt' must be available [-fpermissive]
     detachInterrupt(digitalPinToInterrupt(GDO0));
                                               ^
C:\Users\KR\Documents\Arduino\libraries\AskSinPP/Radio.h: In instantiation of 'void as::Radio<SPIType, GDO0>::enable() [with SPIType = as::AvrSPI<4u, 5u, 6u, 7u>; unsigned char GDO0 = 11u]':
C:\Users\KR\Documents\Arduino\libraries\AskSinPP/AskSinPP.h:61:5:   required from 'void as::AskSin<StatusLed, Battery, Radio>::init(const as::HMID&) [with StatusLed = as::StatusLed<12u>; Battery = as::NoBattery; Radio = as::Radio<as::AvrSPI<4u, 5u, 6u, 7u>, 11u>]'
C:\Users\KR\Documents\Arduino\libraries\AskSinPP/MultiChannelDevice.h:126:5:   required from 'void as::ChannelDevice<HalType, ChannelType, ChannelCount, List0Type>::init(HalType&) [with HalType = as::AskSin<as::StatusLed<12u>, as::NoBattery, as::Radio<as::AvrSPI<4u, 5u, 6u, 7u>, 11u> >; ChannelType = as::SwitchChannel<as::AskSin<as::StatusLed<12u>, as::NoBattery, as::Radio<as::AvrSPI<4u, 5u, 6u, 7u>, 11u> >, 16>; int ChannelCount = 1; List0Type = as::List0]'
HM-LC-Sw1-Pl.ino:61:16:   required from here
C:\Users\KR\Documents\Arduino\libraries\AskSinPP/Radio.h:561:47: error: 'digitalPinToInterrupt' was not declared in this scope
     attachInterrupt(digitalPinToInterrupt(GDO0),isr,FALLING);
                                               ^
C:\Users\KR\Documents\Arduino\libraries\AskSinPP/Radio.h: In instantiation of 'void as::Radio<SPIType, GDO0>::disable() [with SPIType = as::AvrSPI<4u, 5u, 6u, 7u>; unsigned char GDO0 = 11u]':
C:\Users\KR\Documents\Arduino\libraries\AskSinPP/Radio.h:460:13:   required from 'void as::Radio<SPIType, GDO0>::init() [with SPIType = as::AvrSPI<4u, 5u, 6u, 7u>; unsigned char GDO0 = 11u]'
C:\Users\KR\Documents\Arduino\libraries\AskSinPP/AskSinPP.h:60:5:   required from 'void as::AskSin<StatusLed, Battery, Radio>::init(const as::HMID&) [with StatusLed = as::StatusLed<12u>; Battery = as::NoBattery; Radio = as::Radio<as::AvrSPI<4u, 5u, 6u, 7u>, 11u>]'
C:\Users\KR\Documents\Arduino\libraries\AskSinPP/MultiChannelDevice.h:126:5:   required from 'void as::ChannelDevice<HalType, ChannelType, ChannelCount, List0Type>::init(HalType&) [with HalType = as::AskSin<as::StatusLed<12u>, as::NoBattery, as::Radio<as::AvrSPI<4u, 5u, 6u, 7u>, 11u> >; ChannelType = as::SwitchChannel<as::AskSin<as::StatusLed<12u>, as::NoBattery, as::Radio<as::AvrSPI<4u, 5u, 6u, 7u>, 11u> >, 16>; int ChannelCount = 1; List0Type = as::List0]'
HM-LC-Sw1-Pl.ino:61:16:   required from here
C:\Users\KR\Documents\Arduino\libraries\AskSinPP/Radio.h:564:47: error: 'digitalPinToInterrupt' was not declared in this scope
     detachInterrupt(digitalPinToInterrupt(GDO0));
                                               ^
Fehler beim Kompilieren.

papa

Zitat von: Klaus0815 am 05 September 2017, 00:33:37
Wollte es gerade mal testen, sehr weit bin ich leider nicht gekommen:

Das meinte ich mit Hex-File ist einfacher  ;)

Zitat von: Klaus0815 am 05 September 2017, 00:33:37
- TimerOne, EnableInterrupt und Low Power installiert

Die Libraries werden für den Mega32 alle nicht benötigt. Ist aber egal.

Zitat von: Klaus0815 am 05 September 2017, 00:33:37
Habe momentan noch die IDE 1.6.5, , welche benutzt DU?

Ich habe eine recht aktuelle 1.8.2 - nutze aber ein Eclipse mit Arduino-Erweiterung. Die Arduino-IDE kann man nun wirklich nicht zum Entwickeln benutzen.

Probiere mal die inline Funktion durch ein Macro zu ersetzen:


#define digitalPinToInterrupt(pin)  (pin == 11 ? 1 : 0)


oder alternativ Arduino.h vorher includen
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Klaus0815

Mit der IDE 1.6.9 auf einem anderen Rechner gibt es merkwürdigerweise nur noch ein paar Warnungen:
(auch ohne Makro oder Arduino.h)

WARNING: Category '' in library UIPEthernet is not valid. Setting to 'Uncategorized'
<command-line>:0:17: warning: missing whitespace after the macro name [enabled by default]

<command-line>:0:17: warning: missing whitespace after the macro name [enabled by default]

Aber die Kompilierung läuft durch

Sehe ich es richtig das ich mich um Fuses nicht kümmern muss, das ist alles bereits in der AtMega32-Definition enthalten?

papa

Zitat von: Klaus0815 am 05 September 2017, 13:10:52
Mit der IDE 1.6.9 auf einem anderen Rechner gibt es merkwürdigerweise nur noch ein paar Warnungen:
(auch ohne Makro oder Arduino.h)

WARNING: Category '' in library UIPEthernet is not valid. Setting to 'Uncategorized'
<command-line>:0:17: warning: missing whitespace after the macro name [enabled by default]

<command-line>:0:17: warning: missing whitespace after the macro name [enabled by default]

Aber die Kompilierung läuft durch

Ja - die Jungs haben ein "ATMega32-8i" Define gesetzt. Das meckert der Compiler zu Recht an. Ein Symbol darf halt kein '-' enthalten. Aber es scheint erstmal zu funktionieren.

Zitat von: Klaus0815 am 05 September 2017, 13:10:52
Sehe ich es richtig das ich mich um Fuses nicht kümmern muss, das ist alles bereits in der AtMega32-Definition enthalten?

Ja - die Hardware-Definition bringt die FuseBits schon mit. Deshalb ja auch die "8MHz internal" Auswahl. Da ist uns dann ganz egal, was auf der Platine verlötet ist. Das sollte immer gehen.
Die IDE sollte beim Flashen zuerst die Fuses setzen und dann das Image übertragen.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Klaus0815

Habe es soeben getestet - funktioniert :-)

Das einzige was ich nicht hinbekommen habe ist die serielle Debug-Schnittstelle, hier kamen in der Arduino-IDE nur leere Zeichen an, in Putty gar nichts, aber braucht man ja auch nicht

Vielen Dank schon mal an dieser Stelle

Viele Grüße

Klaus

papa

Na das höre ich gerne.

Würde dann mal noch den OTA-Bootloader portieren. Dann könnte man auch mal gegebenenfalls per OTA updaten.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

papa

Könntest DU mal bitte noch den Standby-Verbrauch messen und mit einer Originalen vergelichen ? Bisher habe ich keinerlei Power-Save-Sachen drin.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Klaus0815

Muss ich morgen mal in der Frma machen, habe mein Messgerät vor Ewigkeiten verliehen, seither ist es verschwunden.

Aber denkst Du da gibt es große Unterschiede?
Der CC1100 muss ja eh immer an sein, wo sollte die Leistung hingehen bzw. an welcher Stelle würde sich was einsparen lassen?

Anbei noch ein Foto vom Versuchsaufbau :-)
Mein USBAsp war verschollen, dachte das muss auch irgendwie anders gehen....


Klaus0815

Eine Frage noch - was hat es mit
#define DEVICE_ID HMID(0x34,0x17,0x30)
#define DEVICE_SERIAL "HMax000000"

auf sich?

Die Serial kann ich vergeben, habe die bisherige Max-ID genommen, die ist auch 10stellig.
Aber was ist die ID ?
FHEM findet das Teil dann unter dieser ID - als HM_341730

Soll ich die für verschiedene AKtoren dann auch ändern?

papa

Na den 328 schicke ich, wenn es nicht zu tun gibt, in den Idle-Mode.

Zitat
Idle Mode
Hier kann zum ersten mal gespart werden. Wenn nichts berechnet werden soll, der Timer, UART, ADC etc. aber arbeiten sollen, dann ist dieser Modus das Mittel der Wahl. Die CPU bleibt stehen, ebenso der Flash, weil ja kein Programm ausgeführt wird. Das spart schon mal einiges, der Stromverbrauch sinkt auf ca. 0,35 mA, eine Einsparung von 70 %. Aus diesem Modus kann jeder Interrupt die CPU wieder wecken. Sie ist dann bereits nach sechs Takten wieder voll einsatzfähig.

Schickes Bild  ;D
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

papa

Zitat von: Klaus0815 am 05 September 2017, 20:40:20
Eine Frage noch - was hat es mit
#define DEVICE_ID HMID(0x34,0x17,0x30)
#define DEVICE_SERIAL "HMax000000"

auf sich?

Die Serial kann ich vergeben, habe die bisherige Max-ID genommen, die ist auch 10stellig.
Aber was ist die ID ?
FHEM findet das Teil dann unter dieser ID - als HM_341730

Soll ich die für verschiedene AKtoren dann auch ändern?

Jedes Homematic Gerät hat eine eindeutige ID und Serial. Beide müssen für jedes Gerät anders gesetzt werden. Um eine Firmware für alle verwenden zu können, müssen diese Werte im Bootloader gespeichert werden. Da werden dann die ID & Serial in den Bootloader vor dem Flashen gepatched. So funktioniert das auch mit dem OTA-Bootloader.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Klaus0815

ZitatJedes Homematic Gerät hat eine eindeutige ID und Serial

Das war mir zugegeben so nicht klar - dachte die Serial dient der eindeutigen Unterscheidung, die ID hat was mit dem Typ zu tun.
Gepairt wird ja über die Serial?  Kann / soll ich dann jedem Gerät einfach irgendeine zufällige ID vergeben? Oder gibt es bestimmte Kreise für bestimmte Typen?

papa

Einfach per Zufall. Die ID wird für die Kommunikation untereinander verwendet.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Wzut

Zitat von: papa am 04 September 2017, 19:54:08
Leider ist mein ATMega32 noch nicht eingetroffen  >:(
Ist er inzwischen da oder soll ich dir einen schenken ? Habe noch ein paar in der Bastelkiste, ist echt schön das ich die in Zukunft für HM Projekte verbauen kann :)
Bzw. auch wenn das Medion Angebot nicht zu bekommen war, lohnt es sich wohl doch ab jetzt im Netz auf die Suche nach günstigen MAX! Zwischensteckern zu gehen. Nach dem Cube nun schon das zweite MAX! Gerät das HM tauglich gemacht wurde. (zwei Daumen hoch ! )
Bin mal gespannt wann Eco Taster , WT und die HT dran sind ......  ;)   
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher