AskSinPP Anfänger Tutorial - Detailfragen / Unklarheiten

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

wlanrouter
Beiträge: 21
Registriert: 11.02.2020, 10:57
Hat sich bedankt: 6 Mal

AskSinPP Anfänger Tutorial - Detailfragen / Unklarheiten

Beitrag von wlanrouter » 12.09.2022, 14:37

Hallo liebe Community, ich will mir jetzt mal einen eigenen Homematic Aktor basteln. Ich lese mich auf der Homepage durch das Tutorial, aber so ganz eindeutig ist es mir nicht. Daher schreibe ich hier mal kurz meine Erkenntnisse und Fragen auf, falls noch jemand wie ich mit bei Anfängen stolpert.

Ich verwende Windows.

Die Hardware:https://asksinpp.de/Grundlagen/01_hardw ... dware.html
Frage A) Hab ich das richtig Verstanden: Man kann einen FTDI Adapter ODER einen Diamex ISP Adapter benutzen. Ich habe mich für den FTDI Adapter entschieden. (Als Anfänger sagt einem FTDI und Diamex erst mal gar nichts. Gibt es eine einfache Erklärung welcher Adapter welche Vor- Nachteile mit sich bringt?

Die Software https://asksinpp.de/Grundlagen/02_softw ... tware.html

Frage B) Hab ich das richtig Verstanden: Ich kann PlatformIO ODER Arduino als Entwicklungsumgebung benutzen. Gibt es eine einfache Erklärung welcher Software welche Vor- Nachteile mit sich bringt?
Frage C) Ich habe den Sketch runtergeladen und in Arduino geöffnet. Bei den Bibliotheken war AskSinPP und EnableInterrupt einfach zu finden. Aber bei Low-Power gibt es viel Auswahl und die von Arduino ist die Erste. Ich hab aber die "Low-Power by Rocket Scream Electronics" verwendet. Passt das?
Frage D) Beim kompilieren kriege ich folgende Fehlermeldung:
HM-RC-P1:70:65: error: 'DoublePressButton' was not declared in this scope
Wo und wie soll ich das definieren?

Hier der Quellcode:

Code: Alles auswählen

//- -----------------------------------------------------------------------------------------------------------------------
// AskSin++
// 2017-07-26 papa Creative Commons - http://creativecommons.org/licenses/by-nc-sa/3.0/de/
// ci-test=yes board=328p aes=no
//- -----------------------------------------------------------------------------------------------------------------------

// define this to read the device id, serial and device type from bootloader section
// #define USE_OTA_BOOTLOADER

#define EI_NOTEXTERNAL
#include <EnableInterrupt.h>
#include <LowPower.h>
#include <AskSinPP.h>

#include <MultiChannelDevice.h>
#include <Remote.h>

// Arduino pin for the config button
// B0 == PIN 8
#define CONFIG_BUTTON_PIN 8
// Arduino pins for the buttons
// A0 == PIN 14
#define BTN1_PIN 14


// number of available peers per channel
#define PEERS_PER_CHANNEL 10

// all library classes are placed in the namespace 'as'
using namespace as;

// define all device properties
const struct DeviceInfo PROGMEM devinfo = {
    {0x00,0x1a,0x00},       // Device ID
    "HMRC001A00",           // Device Serial
    {0x00,0x1a},            // Device Model
    0x11,                   // Firmware Version
    as::DeviceType::Remote, // Device Type
    {0x00,0x00}             // Info Bytes
};

/**
 * Configure the used hardware
 */
typedef AvrSPI<10,11,12,13> SPIType;
typedef Radio<SPIType,2> RadioType;
typedef DualStatusLed<5,4> LedType;
typedef AskSin<LedType,BatterySensor,RadioType> HalType;
class Hal : public HalType {
  // extra clock to count button press events
  AlarmClock btncounter;
public:
  void init (const HMID& id) {
    HalType::init(id);
    // get new battery value after 50 key press
    battery.init(50,btncounter);
    battery.low(22);
    battery.critical(19);
  }

  void sendPeer () {
    --btncounter;
  }

  bool runready () {
    return HalType::runready() || btncounter.runready();
  }
};

typedef RemoteChannel<Hal,PEERS_PER_CHANNEL,List0, RemoteList1, DoublePressButton> ChannelType;
typedef MultiChannelDevice<Hal,ChannelType,1> RemoteType;

Hal hal;
RemoteType sdev(devinfo,0x20);
ConfigButton<RemoteType> cfgBtn(sdev);

void setup () {
  DINIT(57600,ASKSIN_PLUS_PLUS_IDENTIFIER);
  sdev.init(hal);
  remoteISR(sdev,1,BTN1_PIN);
  buttonISR(cfgBtn,CONFIG_BUTTON_PIN);
  sdev.initDone();
}

void loop() {
  bool worked = hal.runready();
  bool poll = sdev.pollRadio();
  if( worked == false && poll == false ) {
    hal.activity.savePower<Sleep<>>(hal);
  }
}

HMSteve
Beiträge: 396
Registriert: 20.08.2019, 06:23
Hat sich bedankt: 10 Mal
Danksagung erhalten: 74 Mal

Re: AskSinPP Anfänger Tutorial - Detailfragen / Unklarheiten

Beitrag von HMSteve » 12.09.2022, 16:54

Hallo,

A: Der FTDI Adapter uebersetzt nur USB vom PC in seriell vom ATMega. Du kannst Sketche auf einen 8MHz-Arduino mit funktionierendem Bootloader hochladen und serielle Ausgaben empfangen. Brauxhst Du also immer.
Diamex ist ein ISP Programmer. Du kannst damit Sketche direkt ohne Bootloader hochladen, neue Bootloader brennen und Fuses setzen bzw sogar Controller mit fehlerhaft gesetzten Fuses reanimieren. Brauchst Du frueher oder spaeter zusaetzlich :D

B: Arduino ist fuer den Einstieg einfacher zu bedienen, m.E. platformio ist vom Funktionsumfang viel maechtiger, bspw auch mit besserer Bibliotheksverwaltung. Ich benutze beide.

C: Glaube, ja. Die Antwort findet sich aber sicher in diversen Readmes zu AskSin-Projekten auf Github, da solltest Du Dich definitiv mal ein bisschen umsehen.

D: Auch nur aus dem Hinterkopf: Das kam, glaube ich, recht spaet. Hast Du die neueste Version der AskIn Lib von Github installiert?

Viele Gruesse,
Stephan

wlanrouter
Beiträge: 21
Registriert: 11.02.2020, 10:57
Hat sich bedankt: 6 Mal

Re: AskSinPP Anfänger Tutorial - Detailfragen / Unklarheiten

Beitrag von wlanrouter » 12.09.2022, 17:20

A) Danke!
B) Danke!
C) Da habe ich es auch her, aber ich beginne in der Regel mit dem Anfänger Tutorial bevor ich tiefer einsteige. Und da ist es eben unsicher beschrieben.
D) Ich habe von hier https://asksinpp.de/Grundlagen/02_softw ... rduino-ide die "AskSinPP Bibliothek kann als ZIP-Datei für den V4 Release-Branch" heruntergeladen. Dies wurde so empfohlen. Hab jetzt aber den Master Release probiert. Noch mehr Fehler. Wo steht die Definition? Oder muss ich das selbst definieren?

Übrigens ist ein Fehler im Tutorial. Der Links auf HM-RC-P1.ino im Raw-Format verlinkt auf die HM-LC-Bl1-FM.

Benutzeravatar
stan23
Beiträge: 1940
Registriert: 13.12.2016, 21:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Altmühltal
Hat sich bedankt: 500 Mal
Danksagung erhalten: 301 Mal
Kontaktdaten:

Re: AskSinPP Anfänger Tutorial - Detailfragen / Unklarheiten

Beitrag von stan23 » 12.09.2022, 17:23

HMSteve hat geschrieben:
12.09.2022, 16:54
C: Glaube, ja. Die Antwort findet sich aber sicher in diversen Readmes zu AskSin-Projekten auf Github, da solltest Du Dich definitiv mal ein bisschen umsehen.
Das ist richtig.
Die korrekte Lib ist auch hier verlinkt:
https://github.com/pa-pa/AskSinPP/blob/ ... -libraries
wlanrouter hat geschrieben:
12.09.2022, 17:20
Übrigens ist ein Fehler im Tutorial. Der Links auf HM-RC-P1.ino im Raw-Format verlinkt auf die HM-LC-Bl1-FM.
Danke, ist geändert.
Viele Grüße
Marco

RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)

wlanrouter
Beiträge: 21
Registriert: 11.02.2020, 10:57
Hat sich bedankt: 6 Mal

Re: AskSinPP Anfänger Tutorial - Detailfragen / Unklarheiten

Beitrag von wlanrouter » 12.09.2022, 17:39

Danke dir Stan!
Hab den Grund für den Kompilierfehler gefunden auch gefunden. Die Button.h in der Bibliothek ist veraltet.
Zuletzt geändert von wlanrouter am 12.09.2022, 17:43, insgesamt 1-mal geändert.

jp112sdl
Beiträge: 10779
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 717 Mal
Danksagung erhalten: 1727 Mal
Kontaktdaten:

Re: AskSinPP Anfänger Tutorial - Detailfragen / Unklarheiten

Beitrag von jp112sdl » 12.09.2022, 17:40

wlanrouter hat geschrieben:
12.09.2022, 17:39
Button.h war veraltet.
Wenn möglich nicht nur einzelne Dateien rauspicken, sondern den gesamten Lib-Ordner ersetzen. 8)

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

wlanrouter
Beiträge: 21
Registriert: 11.02.2020, 10:57
Hat sich bedankt: 6 Mal

Re: AskSinPP Anfänger Tutorial - Detailfragen / Unklarheiten

Beitrag von wlanrouter » 12.09.2022, 17:48

Äh ja, Libraries erzeugen ist jetzt nicht so meine Stärke. Vor allem blick ich bei dem V4 und Master Unterschied nicht durch. Ich hab das jetzt mal für mich händisch mit allen Ordnern/Dateien gemacht und eine ZIP erstellt, werde aber die Datei wohl besser nicht hier mit anderen Anfängern teilen.

jp112sdl
Beiträge: 10779
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 717 Mal
Danksagung erhalten: 1727 Mal
Kontaktdaten:

Re: AskSinPP Anfänger Tutorial - Detailfragen / Unklarheiten

Beitrag von jp112sdl » 12.09.2022, 18:13

wlanrouter hat geschrieben:
12.09.2022, 17:48
Äh ja, Libraries erzeugen ist jetzt nicht so meine Stärke.
Du musst nichts erzeugen. Es ist nichts weiter, als den gesamten Ordnerinhalt auszutauschen.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

wlanrouter
Beiträge: 21
Registriert: 11.02.2020, 10:57
Hat sich bedankt: 6 Mal

Re: AskSinPP Anfänger Tutorial - Detailfragen / Unklarheiten

Beitrag von wlanrouter » 12.09.2022, 18:34

Schon klar, hab ich. Aber aber soll ich es hier hochladen? Wenn jemand im Tutorial das gleiche Problem haben wird. Evtl. hat einer von euch mal Zeit die aktuelle Library für das Tutorial hochzuladen.

HMSteve
Beiträge: 396
Registriert: 20.08.2019, 06:23
Hat sich bedankt: 10 Mal
Danksagung erhalten: 74 Mal

Re: AskSinPP Anfänger Tutorial - Detailfragen / Unklarheiten

Beitrag von HMSteve » 12.09.2022, 18:47

Hallo,

Der im Tutorial verlinkte master enthaelt in der button.h doch das DoublePress, insofern muesste es gehen, wenn Du genau dies komplett nutzt, ohne irgendwelche Dateien zu tauschen etc? Lediglich die v4 ist schon etwas aelter.
Der link koennte auf der asksinpp-Seite mit einem generischen Hinweis ergaenzt werden, dass fuer neueste Features der master branch probiert werden sollte, wenn das letzte Release nicht baut. Hier brauchst Du nichts hochladen.

Viele Gruesse,
Stephan

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“