Hallo zusammen,
ich habe rein aus Spaß an der Freude einen Binärcounter "programmiert". Da es doch einige Klickarbeit war, will ich bevor ich ihn in die ewigen Jagdgründe befördere doch hier zum Besten geben.
Hinweis: Die Lösung braucht ziemlich viel Performance wegen der Logikprofile, daher ist sie in produktiven Umgebungen definitiv nicht zu empfehlen.
Verwendung: In kleinerem Umfang konnte ich damit einen "4-Wochen" Rhythmus etablieren, und zumindest ein bisschen die fehlende Kalenderfunktion ausgleichen .
Hintergrundwissen / Interessantes:
Das Ganze in Smarthome:
Der Logik wegen habe ich zwei Räume FSM und Memory eingerichtet.
Bemerkung: Die Profile sind aktuell alle deaktiviert, dass sie mir keine Leistung "fressen".
Memory
Der Speicherbereich (M4-M6, mit M6 least significant bit) hält die binäre Zahl (3 bits: => 8 Zustände => 0-7 dezimal).
(Ich hatte auch M1-M3 implementiert, aber da gingen mir irgendwann die Logikprofile aus )
FSM
Die FSM hält die "Logik" des Systems:
Und so funktionierts:
Schritt 1
Entweder das ManualCLK Ereignis oder das Zeitprofil setzen die CLK ZV auf "JA".
(Bei dem Zeitprofil bleibt die ZV CLK 1 Minute aktiv, bei ManualCLK Ereignis 10s)
Schritt 2
Dann reagiert entweder das Profile AddM6_0 oder AddM6_1, je nach Zustand der ZV M6
Schritt 3
Das Vorgehen aus Schritt 2 wiederholt sich nun über die entsprechenden Profile für M5 und M4. (wie gesagt, M3-1 wurden nie implementiert)
(... Fortsetzung im nächsten Beitrag ...)
ich habe rein aus Spaß an der Freude einen Binärcounter "programmiert". Da es doch einige Klickarbeit war, will ich bevor ich ihn in die ewigen Jagdgründe befördere doch hier zum Besten geben.
Hinweis: Die Lösung braucht ziemlich viel Performance wegen der Logikprofile, daher ist sie in produktiven Umgebungen definitiv nicht zu empfehlen.
Verwendung: In kleinerem Umfang konnte ich damit einen "4-Wochen" Rhythmus etablieren, und zumindest ein bisschen die fehlende Kalenderfunktion ausgleichen .
Hintergrundwissen / Interessantes:
Das Ganze in Smarthome:
Der Logik wegen habe ich zwei Räume FSM und Memory eingerichtet.
Bemerkung: Die Profile sind aktuell alle deaktiviert, dass sie mir keine Leistung "fressen".
Memory
Der Speicherbereich (M4-M6, mit M6 least significant bit) hält die binäre Zahl (3 bits: => 8 Zustände => 0-7 dezimal).
(Ich hatte auch M1-M3 implementiert, aber da gingen mir irgendwann die Logikprofile aus )
FSM
Die FSM hält die "Logik" des Systems:
- CLK: Das zentrale Element die "Clock"
- BUSY: Wird benötigt um "Race-Conditions" bei auswertenden Profilen zu unterdrücken (also wenn ein anderes Profile auf eine bestimmte in M4-M6 gespeicherte "Zahl" reagiert)
- Z0-Z1: Wird benötigt um den "Übertrag" vorzuhalten
Und so funktionierts:
Schritt 1
Entweder das ManualCLK Ereignis oder das Zeitprofil setzen die CLK ZV auf "JA".
(Bei dem Zeitprofil bleibt die ZV CLK 1 Minute aktiv, bei ManualCLK Ereignis 10s)
Schritt 2
Dann reagiert entweder das Profile AddM6_0 oder AddM6_1, je nach Zustand der ZV M6
- War M6 "NEIN", dann geht M6 auf "JA" und CLK auf "NEIN" => Ablauf insgesamt fertig
- War M6 "JA", dann geht M6 auf "NEIN" und ein Übertrag wird notwendig (Z0:"JA", CLK:"NEIN"); Zusätzlich wird BUSY auf "JA" gesetzt, dass keine weitere CLK zu "Verwirrung" führt.
Schritt 3
Das Vorgehen aus Schritt 2 wiederholt sich nun über die entsprechenden Profile für M5 und M4. (wie gesagt, M3-1 wurden nie implementiert)
(... Fortsetzung im nächsten Beitrag ...)
SHC (1, unbegrenzt+mobil), PSD (3), PSS (12), WDS (11), WMD(O) (3), WSC (5), BRC (2), WSO (1), RST (1), HKT (7), Philips Hue, Osram Lightify, Wink/Quirky (Eggtray, Sensor), EdiPlug, Logitech Harmony Hub, Raspberry, Sonos, Netatmo, Pearl Küchenwaage+Kettle, Withings, Sphero, Padbot, Technoline BC2500, WeMo Insight Switch (1), Fibaro WallPlug (3)/WDS(1), Nuimo, Flic