AskSin++ Library

Begonnen von papa, 08 September 2016, 11:11:25

Vorheriges Thema - Nächstes Thema

efyzz

Moin,

ich versuche mal mit meinem gefährlichen Halbwissen etwas dazu zu sagen  ;D

Die AsksinPP Projekte basieren auf einem Atmega 328. Verstehe ich Dich richtig, dass Du ein original Homematic Gerät mit einem AsksinnPP Sketch flashen willst? Das wird wohl aus verschiedensten Gründen nicht kompatibel sein ...
RaspberryPi3B, Bookworm Lite
Homematic Funkmodul HM-MOD-RPI-PCB
------------------------------------------------------------------------
Ich bin kein Programmierer ... aber ich weiß, auf welcher Seite der Lötkolben heiß ist.

papa

Zitat von: Funsailor am 28 Februar 2024, 14:56:56Hi,
ich habe hier ein HM-PBI-4-FM mit defektem Funkmodul. Das Modul habe ich getauscht (Aus einem defekten Fenstersensor) und nun kann ich das Teil sehen.... dummerweise verschlüsselt.
Ich wollte nun den Sketch "HM-PBI-4-FM" vom Jérôme nehmen.... der ist leider zu groß...

ZitatDer Sketch verwendet 18684 Bytes (130%) des Programmspeicherplatzes. Das Maximum sind 14336 Bytes.

(Im Modul ist ein Atmega 168PA drin). Es gab irgendwo mal einen Beitrag wie man da vielleicht weiterkommt, ich finde den aber nicht mehr.

Besteht überhaupt eine Möglichkeit den Sketch so weit abzuspecken das man 4K Programmspeicher spart?
Schau mal in Jeromes Repository, da gibt es auch Geräte mit 168. Auf jeden Fall geht AES dort nicht.
Es gibt ein paar Defines, welche Einfluss auf die Codegröße haben. Infos findest Du hier https://github.com/pa-pa/AskSinPP?tab=readme-ov-file#defines-to-reduce-code-size


BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Funsailor

Zitat von: efyzz am 28 Februar 2024, 22:01:12Moin,

ich versuche mal mit meinem gefährlichen Halbwissen etwas dazu zu sagen  ;D

Die AsksinPP Projekte basieren auf einem Atmega 328. Verstehe ich Dich richtig, dass Du ein original Homematic Gerät mit einem AsksinnPP Sketch flashen willst? Das wird wohl aus verschiedensten Gründen nicht kompatibel sein ...

Nicht ganz richtig, siehe auch Papas Antwort
Wenn man da etwas hoch scrollt, findet man das:
C++ implementation of the AskSin protocol

    easy configuration of the device channels by using templates
    direct eeprom access for the channel data
    AES signature support
    Supported MCU:
        ATMega328
        ATMega32 (Standard Pinout)
        ATMega128 (Standard Pinout)
        ATMega644 (Bobuino Pinout is highly suggested)
        ATMega1284 (No OTA Bootloader support, yet)
        STM32F1
        ESP32 (not fully implemented)
        RP2040 (not fully implemented)
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -

Funsailor

#1608
Hi Papa,
danke für den Tip, ich habe die entsprechenden Sketche in Jeromes Repository gefunden.
Wenn ich die folgenden Zeilen aus den entsprechenden Dateien nutze:

#define SENSOR_ONLY
#define NORTC
#define NOCRC
#define SIMPLE_CC1101_INIT
#define NDEBUG

#define EI_NOTEXTERNAL
#define EI_ATTINY24

//saves ~646 bytes program size:
extern "C" void *malloc(size_t size) {return 0;}
extern "C" void free(void* p) {}

passt der Sketch in den 168er....

Allerdings wird dann nicht mehr viel funktonieren, da mit dem Macro
EI_ATTINY24 einige wichtige Funktionen in der EnableInterrupt.h wegfallen   ::) 

Ohne das Macro wird der Sketch ein wenig zu groß ... : 15166 Bytes (105%)

Allerdings habe ich alle 168er Sketche in Jeromes Repository versucht zu compilieren, die werden alle zu groß  ???


- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -

frank

#1609
https://homematic-forum.de/forum/viewtopic.php?f=76&t=67975&start=10#p798043

edit:
gerade noch gesehen.
die frage dort war ja sowieso von dir.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

raspifhem

Hallo papa,
danke für das Projekt und die tolle Arbeit! Ich betreibe mittlerweile acht AskSin-Module und bin jedes Mal begeistert von der Nützlichkeit und Einfachheit. Super geeignet für größere Reichweiten, Zuverlässigkeit und/oder Batteriebetrieb.

Die Module senden ungefähr alle drei Minuten Werte. Für meinen Anwendungsfall und um Energie zu sparen würde mir ein längerer Zeitraum (beispielsweise eine Stunde) ausreichen. Wie ändere ich das Sendeintervall?

Ich entschuldige mich vorab, falls die Frage schon beantwortet wurde - habe den Code inspiziert und viele der über 100 Seiten hier gelesen, die Antwort aber leider nicht gefunden oder übersehen. Danke.

papa

Zitat von: raspifhem am 17 Mai 2024, 08:50:38Die Module senden ungefähr alle drei Minuten Werte. Für meinen Anwendungsfall und um Energie zu sparen würde mir ein längerer Zeitraum (beispielsweise eine Stunde) ausreichen. Wie ändere ich das Sendeintervall?

Um welches Gerät / Sketch handelt es sich genau ?
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

raspifhem

Ich nehme meistens die Vorlage für "Device Model: HM-WDS40-TH-I" und setze dann statt Temperatur/Humidity meine Sensorwerte.

papa

Das kommt dann aus dem WeatherChannel. Dieser berechnet den nächsten Sendezeitpunkt in der reactivate() Methode:
https://github.com/pa-pa/AskSinPP/blob/df66809b243180f374692421ad3a44cb3f5c5f6f/Weather.h#L50

Du könntest im Sketch EXTRADELAY in ms definieren. Vielleicht kommst Du damit ja hin.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

raspifhem

Ein #define EXTRADELAY 3600000 oder typedef WeatherChannel<Hal, SysClock, Sensors, PEERS_PER_CHANNEL, EXTRAMILLIS+EXTRADELAY, WeatherList0> ChannelType; hat leider keine Änderung bewirkt.

Ich werde mal weiter forschen wo die drei Minuten herkommen.

papa

Trag mal beim Typedef den Wert direkt ein.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire