Zähler Kurzbefehl?

  • Ich suche eine Möglichkeit in einem Kurzbefehl hochzählen zu können.


    Für meine Idee suche ich einen Syntax wie folgt:


    Ereignis x

    Setze „Anzahl“ auf 1

    Wenn „Anzahl“ dieses Ereignis = 1

    Dann Message 1

    „Anzahl“ + 1

    Sonst

    Wenn „Anzahl“ dieses Ereignis = 2

    Dann Message 2

    „Anzahl“ + 1

    Sonst

    Wenn „Anzahl“ dieses Ereignis = 3

    Dann Message 3

    „Anzahl“ - 3

    Ende


    Lösung? Ideen? U.a. mit dem Homebridge Plugin logic arbeiten?

  • Ich bin ja schon froh, dass mich wenigstens einer halbwegs verstanden hat. :)


    Ok versuche ich mal zu beschreiben, wo ich hin will.


    Hausgemeinschaft mit einem gemeinsamen Müllcontainer. Daher gemeinschaftliche Verantwortung den zur Straße zu bringen und wieder zurück zu stellen.


    Ich möchte eine Message an alle, wenn der Container nach vorne (nicht einsehbar) gebracht wurde (1. Mal bewegt wurde), wenn der geleert wurde (2. x bewegt wurde) und wenn er zurück gestellt wurde (3. Bewegung). Damit niemand in der Herrgottsfrühe raus geht und dann feststellt die Tonne ist schon vorne (meistens ich :rolleyes:).


    Daher die Idee mit dem Zähler / Counter. Dein erster Vorschlag bringt mich schon weiter, aber so wird es nicht funktionieren. Sehr wahrscheinlich klemmt da auch irgendwas in meiner Logik.


    Also wer kann mich in meiner Faulheit unterstützen und läßt mich ein kleines bisschen länger schlafen?

  • Hm, wie wärs mit einem normalen Tür Sensor bei dem du immer siehst ob die Tonne am Platz ist oder nicht?


    Folgende Probleme:

    Personal shortcuts können sich etwas merken, zb die Zahl in einer Text Datei, diese dann hochzählen. Es gibt aber leider keinen Sensor-trigger also die Auslösung wenn sich was ändert, nur zb per Zeit etc.

    Bei Home Shortcuts kannst du nix Zwischenspeichern, wird also schwierig mit dem zählen, allerdings können diese per Sensoren ausgelöst werden.


    Hätte Apple den Home Shortcuts mehr Möglichkeiten gegeben wäre das alles kein Problem...

  • Hallo Rome,


    ich habe die gleiche Erfahrung wie OrangeX gemacht. In Home lassen sich in den Automationen höchstens für eine Automation während der Laufzeit Integer-Variablen speichern, hochzählen und verwenden. Dein Anwendungsfall würde es mit dem Weg erfordern eine Variable global zu speichern. Das geht meines Wissens in Home-Automationen leider (noch) nicht.


    Du hast ja eine Homebridge im Einsatz. Warum arbeitest du nicht mit Fake-Schaltern?

    Beispiel: Mülltonne wurde nach vorn bewegt => Schalter 1 = on; Mülltonne wurde geleert => Schalter 2 = on; Mülltonne wurde wieder an ihren Ursprungsort gebracht = > Schalter 1 und 2 = off


    Du brauchst halt einen "Trigger". Mglw. geht das über einen Sensor an der Mülltonne, denn du in Home einbinden kannst.


    Nur so eine Idee ...

  • @OrangeX

    Ja die Einschränkungen von HomeKit mal wieder. Auf was man das aufbohren könnte.

    ¯\_(ツ)_/¯ :/


    WillyWurst

    Ja Homebridge ist da und wird ständig weiter ausgebaut. Ja an die Lösung mit Fakeschaltern habe ich auch schon gedacht. Wahrscheinlich wird es darauf auslaufen. Aber bald habe ich mehr Fakeschalter als reelle Devices. Ich dachte es könnte auch eine elegantere Lösung geben, auf die ich partout nicht komme.


    Wäre ev. das Plugin Homebridge-logic eine Lösung für die Speicherung des Zählstandes? Diskussion auch hier im Forum unter Homebridge Plugin-logic.

  • Das Plugin kenne ich nicht und habe ich auch nicht im Einsatz. Ich habe mir gerade mal den Thread hier im Forum und das Plugin auf npm angesehen. Klingt spannend. Der Entwickler spricht ja von einem "Hack" in Home. Ob das also noch (mit iOS14.x) funktioniert, ist vielleicht fraglich. Auf jeden klingt es danach als würde es dein Thema adressieren.

  • Müsste es nicht gehen ein Kurzbefehl so wie du es hier abgedacht hast zu nutzen. Und als Counter eine Fake light bulb dessen Heiligkeit zu nutzen. 10% = 1 20% = 2 ....


    Das Plugin logic kenne ich nicht wenn das aber das macht was da steht wäre das ja auch ein Counter.


    Du könntest unten an der Tonne ein Erschütterungssensor und/ ein Kontakt-Sensor anbringen.

    Holst dir einen etwas größeren Magneten und bringst den am Boden an den 2 Positionen an wo die Tonne stehen könnte. Markierst den Bereich gut so das gut zu erkennen ist, wo die Tonne zu stehen hat.


    1x mal bewegen würde Erschütterung öffnen des Kontakt-Sensors bedeuten und wieder schließen.

    2. mal leeren genau so. Und das 3x mal eben so. Könntest noch eine Zeit zwischen den öffnen/schließen machen die es mindestens braucht bis die Tonne an der richtigen Stelle ist um falsch Auslösungen/Counts zu vermeiden.

    2 Mal editiert, zuletzt von xeneo ()

  • Tja mal eben schnell das Plugin Logic installiert und dessen Standardkonfig in meine HB Konfig eingebaut und schon startet meine Homebridge nicht mehr.


    Hej super - toll. Rollback, Backup, rausfrickeln warum war genau mein Plan ...

  • Jep. Aber ich wollte eigentlich erstmal besser Homebridge verstehen lernen. Eine Plattform Phase erreichen, so dass ich nicht jedesmal in Panik verfalle, wenn‘s wieder in die Binsen geht. ;)

  • Auch wenn der Post schon etwas her ist…

    Ich bin vor kurzem vor dem selben Problem

    gestanden und bin dabei auf diesen Post gestoßen. Da ich inzwischen eine einfache Lösung gefunden habe wollte ich diese hier für zukünftige suchen teilen.

    Ich habe es so gelöst (Rückwärtszählen von 2l Wasser):

    1. Automation täglich um 00:01 Uhr - Datei mit gewünschtem Startwert sichern (im Fall des Müllzählers könnte dies ja zb. erfolgen nachdem der Wert den Höchstwert erreicht hatte)

    2. In Kurzbefehl Datei abrufen, Zahl konvertieren, Zahl - 200, Datei speichern.


    Ich hoffe das war jetzt nicht zu unübersichtlich.

  • Also. Nach sehr langen immer wieder neue Ansätze probieren habe ich das Projekt aufgegeben. Aus mehreren Gründen.


    1. mangelnde Fähigkeiten meinerseits (bestimmt). Variablen definieren, abspeichern, abrufen und verarbeiten kriege ich nicht hin

    2. die Aqara Vibrationssensoren sprechen auf Vibration an. Ich brauche aber nur Neigung, weil Vibrationen durch Mülleimer-Deckel öffnen und fallen lassen Fehlalarme verursachen

    3. ich das Problem nicht lösen konnte, dass die Tonnen für eine gewisse Zeit in Bewegung sind (nach vorne zur Straße bringen, an den Mülllaster koppeln und zurück, die Tonne zurück zum Haus rollen) und damit vibrieren

    4. - 24. vergessen weil nur noch genervt

  • Für Problem 1 hätte ich eine Lösung anzubieten:

    Ich kann nicht programmieren (leider!) aber einigermaßen logisch denken (meistens) :) Irgendwann habe ich bei meinen Recherchen für meine eigenen Problematiken erfahren, dass man in der Home-App in den Automationen auch SSH Befehle absetzen kann. Also habe ich mich ein wenig mit SSH-Befehlen auseinander gesetzt. SSH Verbindungen sind (wie die meisten hier wahrscheinlich wissen) zum Raspberry Pi auf dem die Homebridge läuft möglich, aber auch zum Mac.

    über den Befehl Skript über SSH ausführen kann man nun zB Ordner auf dem Pi verändern und auch abfragen:

    Host: IP-Adresse des Pi

    Port: 22

    Benutzer: Pi (wahrscheinlich)

    Passwort: habichvergessen (bzw. euer Passwort für den Pi)

    Eingabe: "" leer lassen -

    Skript: Siehe nachfolgende. Ausführungen....

    Über

    mkdir Zaehler1

    kann man zB einstellen, dass der Ordner "Zaehler1" erstellt wird. Der Zähler wäre auf damit auf 1.

    Über

    rmdir Zaehler1

    mkdir Zaehler2

    kann dieser Ordner/Zähler1 wieder gelöscht werden und ein neuer Ordner /Zaehler2 erstellt werden. Der Zähler steht nun auf 2.

    Über

    rmdir Zaehler2

    mkdir Zaehler3

    Landen wir bei einem Zählerstand auf 3.

    Nun müssen wir natürlich noch erfahren können, auf welchem Zählerstand wir uns befinden.

    Über

    find -name Zaehler1

    find -name Zaehler2

    find -name Zaehler3

    kann überprüft werden auf welchem Zählerstand wir stehen. Dazu kann man eine wenn Funktion einbauen:

    Wenn Skriptergebnis (auf text wechseln) enthält Zahler1 dann ssh Skript mit dem Befehl

    rmdir Zaehler1

    mkdir Zaehler2

    Ende von Wenn.

    Je nachdem, wie hoch der Zähler gehen soll, desto öfter muss man mit den Ordnern hantieren.

    Das coole ist: Am iPhone kann man in den Kurzbefehlen ebenfalls über SSH auf den Pi zugreifen. Damit hat man einen globalen Zähler.

    Hier wäre es (wahrscheinlich) sinnvoll, für 0:01 Uhr einen Kurzbefehl zu erstellen, der den Zähler auf 0 setzt.

    rmdir Zaehler1

    rmdir Zaehler2

    rmdir Zaehler13

    mkdir Zaehler0

    (Vorsicht, Zahler0 habe ich am Anfang der "Anleitung" nicht genutzt.

    Und die Abfrage, auf welchem Stand wir sind ist ebenfalls auch per Kurzbefehl möglich.


    Am Mac gibt es noch das Schmankerl, dass man sich über bestimmte Geräte Aktionen aus Home per iMessage informieren lasen kann zB Wenn Bewegung im Flur festgestellt.

    das Skript hierzu lautet:

    osascript -e 'tell application "Messages" to send "Hier kommt der Nachrichtentext rein" to buddy "0170123456"'


    Folgendes habe ich so zuHause umgesetzt:

    Einen Status, in welchem Raum ich mich befinde. Darüber kann ich mit dem Befehl "Netflix" jeweils den passenden Fernseher / Apple TV ansteuern.


    Einen Status, ob ich arbeite oder nicht. Wenn ich arbeite, soll der Bewegungsmelder im Büro automatisch den Mac aufwecken.


    Einen Status, ob ich alleine in der Wohnung bin (dann soll nur dort das Licht an sein, wo ich mich befinde) oder ob noch jemand anwesend ist.


    Einen status, ob ich zu Hause bin oder nicht. Wenn nicht, muss zu Hause die smarte Klingel ja nichts signalisieren...


    Die kreativen Ansätze sind quasi unerschöpflich

    Ich hoffe, dass ich einigermaßen verständlich geschrieben habe und ich damit für die Zählergeschichte eine gangbare Lösung liefern konnte.