Forum: Haus & Smart Home allgemeines Zeitmodul


von Philipp (Gast)


Lesenswert?

Hallo,

ursprünglich hatte ich geplant ein Zeitmodul zu bauen mit einer
Realtime Clock. Von dieser wollte ich dann per CAN Nachricht

zB so:

ID 123  Data0: timer ID  Data1: sekunden

einen Timer anfordern. Sobald die Sekunden aus Data1 abgelaufen sind
sollte eine CAN Nachricht gesendet werden die dann enthält das timer ID
xy abgelaufen ist.

Nun habe ich in dem Thread nebenan gelesen, dass ich auch keinen Fall
über die gleiche CAN ID von mehreren Knoten aus so einen Timer
anfordern darf.

Ich benutze das ganze zwar nicht im Haus, sondern im Auto, aber ich
denke die Probleme sind die gleichen und auch hier wird sowas mal jmd
gebaut haben (vielleicht nicht gerade fürs Innenlicht usw, sondern fürs
Treppenhaus oder sonstwas)

Also ich möchte für alle Module Timer zur Verfügung stellen, so dass
ich ein paar Zeitgesteuerte Dinge steuern kann ohne in jeden einzelnen
Knoten eine RTC bauen zu müssen (sollte möglichst sekundengenau sein)

Hatte überlegt einfach jede Sekunde die Uhrzeit/Datum zu senden,
allerdings würde ich dann damit zumindest Teile des Autos einmal pro
Sekunde aufwecken. Vorteil wäre, das ich einfach in den Modulen die
Anzahl der Zeit Pakete zählen könnte und damit einen Sekundentakt
hätte.

Wie löst Ihr sowas? Hat jmd Vorschläge?

Vielen Dank schonmal
Gruß Philipp

von Schmittchen (Gast)


Lesenswert?

Codiere doch den Absender in die CanId, z.B. indem du Id 120-129 für die
Anforderung des Timers nimmst, wobei die letzte Stelle die
Absendernummer ist. Der Empfänger muss dann halt auf 120-129 reagieren,
was aber kein Problem ist. (Filter auf "alles" empfangen und gut ist;
gibt kein Problem mit der µC-Auslastung).

IDs zu knapp? Dann kannste immernoch auf extended IDs wechseln und hast
dann 29Bit zur Verfügung...

Aber ich glaube es ist einfacher mit dem RTC-Can-Knoten nur die Uhrzeit
zu broadcasten und die Knoten errechnen sich ihre Timer selbst
(Softwareuhr). Aber das musst du wissen.

von Philipp (Gast)


Lesenswert?

Ja hab mir das jetzt so gedacht:

Es gibt eine CAN ID vom RTC Modul die folgendes enthält:
- Stunde
- Minute
- Sekunde
- Tag
- Monat
- Jahr
- Wochentag

Wenn ich ein RTR für diese ID schicke kommt sie nicht sofort sondern
zur nächsten vollen Sekunde.

In den Modulen in denen ich die Zeiten benötigte zähle ich einfach das
eintreffen dieser Packete. Und um nicht jede Sekunde so ein Paket zu
senden kommt es nur wenn ein Modul es angefordert hat und dies tut es
solange sein Timer noch nicht auf 0 runtergezählt wurde.

Gruß Philipp

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.