Lametric Time

  • Bestimmte APPs aktivieren geht so:

    Mit Eingabe von:


    Code
    curl -X GET -u "dev:2d8f9c365f8d98e00f2c231f2643d72757a9d711d27c0fxvxvxvxvxvxc9596f2e9be" http://192.168.178.00:8080/api/v2/device/apps

    bekommt man als Ausgabe:


    Code
    { "com.lametric.07a56cab03ebc83f58eece626494672b" : { "package" : "com.lametric.07a56cab03ebc83f58eece626494672b", "title" : "DLSpeed", "triggers" : {  }, "vendor" : "Maurizio", "version" : "3-2", "version_code" : "3", "widgets" : { "1753e675c960498ea729ead20c428a93" : { "index" : -1, "package" : "com.lametric.07a56cab03ebc83f58eece626494672b", "settings" : { "_title" : "DLSpeed" } } } }, "com.lametric.07ec2cf05d44904099c2567e9a2277de" : { "package" : "com.lametric.07ec2cf05d44904099c2567e9a2277de", "title" : "Calendar Viewer", "triggers" : {  }, "vendor" : "Matt Bielich", "version" : "14", "version_code" : "14", "widgets" : { "9847c3e516a24b499b141076cfb6443e" : { "index" : 23, "package" : "com.lametric.07ec2cf05d44904099c2567e9a2277de", "settings" : { "_title" : "Calendar Viewer" } } } }, "com.lametric.0d2c2d917287026136950b7e3893ac1c" : { "package" : "com.lametric.0d2c2d917287026136950b7e3893ac1c", "title" : "LamRSS", "triggers" : {  }, "vendor" : "CeD", "version" : "3", "version_code" : "3", "widgets" : { "6666c9e4867a4cfd81420ce66abf8718" : { "index" : -1, "package" : "com.lametric.0d2c2d917287026136950b7e3893ac1c", "settings" : { "_title" : "LamRSS" } } } }, "com.lametric.36bfe315d8b937a889cc176812ff2315" : { "package" : "com.lametric.36bfe315d8b937a889cc176812ff2315", "title" : "Time Since", "triggers" : {  }, "vendor" : "Anan Roderick Th", "version" : "8", "version_code" : "8", "widgets" : { "87cb656113864ee58507ee79f3294863" : { "index" : -1, "package" : "com.lametric.36bfe315d8b937a889cc176812ff2315", "settings" : { "_title" : "Time Since" } } } }, "com.lametric.3b7086e00d405d2116dbd5125a7134aa" : { "package" : "com.lametric.3b7086e00d405d2116dbd5125a7134aa", "title" : "Night Mode", "triggers" : {  }, "vendor" : "Guillermo Su\u00e1rez Asencio", "version" : "4-1", "version_code" : "4", "widgets" : { "5ee2bf493a8a47c7a4ee1eb5a28b54f4" : { "index" : -1, "package" : "com.lametric.3b7086e00d405d2116dbd5125a7134aa", "settings" : { "_title" : "Night Mode" } } } }, "com.lametric.67523c9af03b01dad1d06f5da4b6ab3a" : { "package" : "com.lametric.67523c9af03b01dad1d06f5da4b6ab3a", "title" : "Light", "triggers" : {  }, "vendor" : "Enrico", "version" : "1-2", "version_code" : "1", "widgets" : { "65eb8840842d47ad862a0c672cf82a9a" : { "index" : -1, "package" : "com.lametric.67523c9af03b01dad1d06f5da4b6ab3a", "settings" : { "_title" : "Light" } } } }, "com.lametric.6851880e9ef3390e6f2b052cacd06b09" : { "package" : "com.lametric.6851880e9ef3390e6f2b052cacd06b09", "title" : "Tag-Info", "triggers" : {  }, "vendor" : "Markus Jasinski", "version" : "1", "version_code" : "1", "widgets" : { "569d26e160d9411da910532395d63b05" : { "index" : -1, "package" : "com.lametric.6851880e9ef3390e6f2b052cacd06b09", "settings" : { "_title" : "Tag-Info" } } } }, "com.lametric.bacc67d9905b624ac452f1ecddfe92fa" : { "package" : "com.lametric.bacc67d9905b624ac452f1ecddfe92fa", "title" : "Tagesschau Eilmeldung(unofficial)", "triggers" : {  }, "vendor" : "Sebastian Bleeker", "version" : "1", "version_code" : "1", "widgets" : { "7e83edceeced4189877fc350ade282ae" : { "index" : -1, "package" : "com.lametric.bacc67d9905b624ac452f1ecddfe92fa", "settings" : { "_title" : "Tagesschau Eilmeldung(unofficial)" } } } }, "com.lametric.clock" : { "actions" : { "clock.alarm" : { "enabled" : { "data_type" : "bool", "name" : "enabled", "required" : false }, "time" : { "data_type" : "string", "format" : "[0-9]{2}:[0-9]{2}(?::[0-9]{2})?", "name" : "time", "required" : false }, "wake_with_radio" : { "data_type" : "bool", "name" : "wake_with_radio", "required" : false } }, "clock.clockface" : { "icon" : { "data_type" : "string", "name" : "icon", "required" : false }, "type" : { "data_type" : "string", "format" : "weather|page_a_day|custom|none", "name" : "type", "required" : false } } }, "package" : "com.lametric.clock", "title" : "Clock", "triggers" : { "alarm" : { "snooze" : { "data_type" : "bool", "name" : "snooze" } } }, "vendor" : "LaMetric", "version" : "2.2.13", "version_code" : "50", "widgets" : { "08b8eac21074f8f7e5a29f2855ba8060" : { "index" : 0, "package" : "com.lametric.clock", "settings" : { "_title" : "Uhr" } } } }, "com.lametric.countdown" : { "actions" : { "countdown.configure" : { "duration" : { "data_type" : "int", "name" : "duration", "required" : false }, "start_now" : { "data_type" : "bool", "name" : "start_now", "required" : false } }, "countdown.pause" : {  }, "countdown.reset" : {  }, "countdown.start" : {  } }, "package" : "com.lametric.countdown", "title" : "\u0422\u0430\u0439\u043c\u0435\u0440", "triggers" : { "finished" : { "duration" : { "data_type" : "int", "name" : "duration" } }, "paused" : { "duration" : { "data_type" : "int", "name" : "duration" } }, "reset" : { "duration" : { "data_type" : "int", "name" : "duration" } }, "resumed" : { "duration" : { "data_type" : "int", "name" : "duration" } }, "started" : { "duration" : { "data_type" : "int", "name" : "duration" } } }, "vendor" : "LaMetric", "version" : "1.0.9", "version_code" : "15", "widgets" : { "f03ea1ae1ae5f85b390b460f55ba8061" : { "index" : -1, "package" : "com.lametric.countdown", "settings" : { "_title" : "Timer" } } } }, "com.lametric.custommessage" : { "package" : "com.lametric.custommessage", "title" : "Message Board", "triggers" : {  }, "vendor" : "LaMetric", "version" : "1.0.6", "version_code" : "16", "widgets" : { "155f84b9a2b240ea94b7cd80283b39a9" : { "index" : -1, "package" : "com.lametric.custommessage", "settings" : { "_title" : "Message Board" } } } }, "com.lametric.d001dd55314f3e4604eba8548e5fee18" : { "package" : "com.lametric.d001dd55314f3e4604eba8548e5fee18", "title" : "Spritpreise", "triggers" : {  }, "vendor" : "cmdr tom", "version" : "15", "version_code" : "15", "widgets" : { "4ef5b47dabe840ff8e70771493b023c5" : { "index" : -1, "package" : "com.lametric.d001dd55314f3e4604eba8548e5fee18", "settings" : { "_title" : "Spritpreise" } } } }, "com.lametric.d258909df37070a18605a51bbfe8e341" : { "package" : "com.lametric.d258909df37070a18605a51bbfe8e341", "title" : "Unwetterwarnungen \"Deutscher Wetterdienst\"", "triggers" : {  }, "vendor" : "PatrickTM", "version" : "1", "version_code" : "1", "widgets" : { "ca1f97341a5b4591b8ad2001702d9b2d" : { "index" : -1, "package" : "com.lametric.d258909df37070a18605a51bbfe8e341", "settings" : { "_title" : "Unwetterwarnungen \"Deutscher Wetterdienst\"" } } } }, "com.lametric.d9d0f2169194e00284fcbc9686659e06" : { "package" : "com.lametric.d9d0f2169194e00284fcbc9686659e06", "title" : "N-TV News (unofficial)", "triggers" : {  }, "vendor" : "Ulrich Schwarz", "version" : "10", "version_code" : "10", "widgets" : { "7e558427c059402d95ca3b7fc1359d18" : { "index" : -1, "package" : "com.lametric.d9d0f2169194e00284fcbc9686659e06", "settings" : { "_title" : "N-TV News (unofficial)" } } } }, "com.lametric.date.display" : { "package" : "com.lametric.date.display", "title" : "Date Indicator", "triggers" : {  }, "vendor" : "LaMetric", "version" : "1.0.1", "version_code" : "2", "widgets" : { "501b1fc7714548238c153a4409ad30ac" : { "index" : -1, "package" : "com.lametric.date.display", "settings" : { "_title" : "Date Indicator" } } } }, "com.lametric.date.ticker" : { "package" : "com.lametric.date.ticker", "title" : "Date Ticker", "triggers" : {  }, "vendor" : "LaMetric", "version" : "2.0.1", "version_code" : "21", "widgets" : { "7481b7811c3c45baad3a38021787fa80" : { "index" : 19, "package" : "com.lametric.date.ticker", "settings" : { "_title" : "Date Ticker" } } } }, "com.lametric.e32a8bebed596563d9bb61e6b7d07210" : { "package" : "com.lametric.e32a8bebed596563d9bb61e6b7d07210", "title" : "News Deutschland", "triggers" : {  }, "vendor" : "AddicTec", "version" : "3", "version_code" : "3", "widgets" : { "d8c1a1d51731451b8bf8346c411b50a8" : { "index" : -1, "package" : "com.lametric.e32a8bebed596563d9bb61e6b7d07210", "settings" : { "_title" : "News Deutschland" } } } }, "com.lametric.ed4d23261b37de078f78ecac95211097" : { "package" : "com.lametric.ed4d23261b37de078f78ecac95211097", "title" : "Telemetric", "triggers" : {  }, "vendor" : "Dmitriy", "version" : "2", "version_code" : "2", "widgets" : { "0540279cd33746548d96fef41c02be69" : { "index" : -1, "package" : "com.lametric.ed4d23261b37de078f78ecac95211097", "settings" : { "_title" : "Telemetric" } } } }, "com.lametric.email" : { "package" : "com.lametric.email", "title" : "Email Notifications", "triggers" : {  }, "vendor" : "LaMetric", "version" : "1.0.3", "version_code" : "4", "widgets" : { "1fb8e1d93ca14dfc86a149b62dfe9538" : { "index" : -1, "package" : "com.lametric.email", "settings" : { "_title" : "Email Notifications" } } } }, "com.lametric.fa51f109616df125ef86a578f8614e80" : { "package" : "com.lametric.fa51f109616df125ef86a578f8614e80", "title" : "Sunrise & Sunset", "triggers" : {  }, "vendor" : "manuel", "version" : "6", "version_code" : "6", "widgets" : { "6413881c025a405bbcbbc8a089b3a195" : { "index" : -1, "package" : "com.lametric.fa51f109616df125ef86a578f8614e80", "settings" : { "_title" : "Sunrise & Sunset" } } } }, "com.lametric.ical" : { "package" : "com.lametric.ical", "title" : "Daily Agenda", "triggers" : {  }, "vendor" : "LaMetric", "version" : "1.1.4", "version_code" : "8", "widgets" : { "bac4e0bfb63f4ffc9b12a4f994940a20" : { "index" : 22, "package" : "com.lametric.ical", "settings" : { "_title" : "Daily Agenda" } } } }, "com.lametric.mailnotifications" : { "package" : "com.lametric.mailnotifications", "title" : "Email Notifications", "triggers" : {  }, "vendor" : "LaMetric", "version" : "1.0.9", "version_code" : "10", "widgets" : { "c481a68a1c9b46778c62ac7d7bac57a6" : { "index" : 25, "package" : "com.lametric.mailnotifications", "settings" : { "_title" : "Email Notifications" } } } }, "com.lametric.netatmo.weather.station" : { "package" : "com.lametric.netatmo.weather.station", "title" : "Netatmo Weather", "triggers" : {  }, "vendor" : "LaMetric", "version" : "1.1.1", "version_code" : "16", "widgets" : { "cee0b3e4099547feb2cf1976c26f99bd" : { "index" : -1, "package" : "com.lametric.netatmo.weather.station", "settings" : { "_title" : "Netatmo Weather" } } } }, "com.lametric.news" : { "package" : "com.lametric.news", "title" : "Top News", "triggers" : {  }, "vendor" : "LaMetric", "version" : "1.0.7", "version_code" : "7", "widgets" : { "60551fd599df4e4b8c54546cacc11538" : { "index" : -1, "package" : "com.lametric.news", "settings" : { "_title" : "Top News" } } } }, "com.lametric.philips.hue" : { "package" : "com.lametric.philips.hue", "title" : "Controller for Philips Hue", "triggers" : {  }, "vendor" : "LaMetric", "version" : "1.1.0", "version_code" : "9", "widgets" : { "5d35169fc7034c4e9f110674b2e52cc6" : { "index" : 29, "package" : "com.lametric.philips.hue", "settings" : { "_title" : "Philips Hue" } } } }, "com.lametric.radio" : { "actions" : { "radio.next" : {  }, "radio.play" : {  }, "radio.prev" : {  }, "radio.state" : {  }, "radio.stop" : {  } }, "package" : "com.lametric.radio", "title" : "Radio", "triggers" : {  }, "vendor" : "LaMetric", "version" : "1.0.20", "version_code" : "32", "widgets" : { "589ed1b3fcdaa5180bf4848e55ba8061" : { "index" : 4, "package" : "com.lametric.radio", "settings" : { "_title" : "Radio" } } } }, "com.lametric.rss" : { "package" : "com.lametric.rss", "title" : "RSS Feed", "triggers" : {  }, "vendor" : "LaMetric", "version" : "1.2.1", "version_code" : "6", "widgets" : { "7a2cad371fa949628b1372efd232796a" : { "index" : 30, "package" : "com.lametric.rss", "settings" : { "_title" : "RSS Feed" } } } }, "com.lametric.sonos" : { "actions" : { "startDiscover" : {  } }, "package" : "com.lametric.sonos", "title" : "Sonos", "triggers" : {  }, "vendor" : "LaMetric", "version" : "1.0.6", "version_code" : "7", "widgets" : { "11bccf4e42cd4286b48ea303a590819b" : { "index" : -1, "package" : "com.lametric.sonos", "settings" : { "_title" : "Sonos" } } } }, "com.lametric.stock.quotes" : { "actions" : { "stocks.search" : { "term" : { "data_type" : "string", "name" : "term", "required" : false } } }, "package" : "com.lametric.stock.quotes", "title" : "Stock Quotes", "triggers" : {  }, "vendor" : "LaMetric", "version" : "2.2.1", "version_code" : "32", "widgets" : { "cf4cc85e59a54d55ba8b9cffb3e16572" : { "index" : -1, "package" : "com.lametric.stock.quotes", "settings" : { "_title" : "Stock Quotes" } } } }, "com.lametric.stopwatch" : { "actions" : { "stopwatch.pause" : {  }, "stopwatch.reset" : {  }, "stopwatch.start" : {  } }, "package" : "com.lametric.stopwatch", "title" : "Stopwatch", "triggers" : {  }, "vendor" : "LaMetric", "version" : "1.0.6", "version_code" : "12", "widgets" : { "b1166a6059640bf76b9dfe0455ba8062" : { "index" : -1, "package" : "com.lametric.stopwatch" } } }, "com.lametric.weather" : { "actions" : { "weather.forecast" : {  }, "weather.get.cc" : {  } }, "package" : "com.lametric.weather", "title" : "Weather", "triggers" : {  }, "vendor" : "LaMetric", "version" : "1.0.12", "version_code" : "20", "widgets" : { "380375c4b12c16e3adafb48355ba8061" : { "index" : 2, "package" : "com.lametric.weather", "settings" : { "_title" : "Wetter" } } } } }


    Man sucht sich den Code von z.B. der Uhr

    und dann den Befehl:


    Code
    curl -X PUT -u "dev:2d8f9c365f8d98e00f2c231f2643xxxxxxxxxf9f99bf0c9596f2e9be" http://192.168.178.00:8080/api/v2/device/apps/com.lametric.clock/widgets/08b8eac21074f8f7e5a29f2855ba8060/activate

    eingeben.


    Zur nächsten APP schalten:


    Code
    curl -X PUT -u "dev:2d8f9c365f8d98e00f2cxxxxxxxd711d27c0f9f99bf0c9596f2e9be" http://192.168.178.00:8080/api/v2/device/apps/next


    Zur vorhergehender APP schalten:


    Code
    curl -X PUT -u "dev:2d8f9c365f8d98e00f2c231f26xxxxxxxxx9d711d27c0f9f99bf0c9596f2e9be" http://192.168.178.00:8080/api/v2/device/apps/prev
  • Sehr cool ! :) und ich hab das calender Plugin für den Abfall schon gelöscht. Ich hatte es auch mit IFTTT und meinen hü motion getriggert. Aber super Sache jetzt wo IFTTT so mies abzockt für die webhooks.


    Du scheinst ja echt ziemlich fit mit der LaMetric zu sein da habe ich eine Frage :)


    Es gibt zwar bereits eine ziemlich gute Counter app habe ich im App Store gesehen aber bevor es da gab wollte ich halt mal selbst eine basteln. Das hat Semi gut funktioniert.


    Ich wüsste halt gerne wie man so eine app bauen muss das man entweder den wert per Knopf wie in der o.g. app hochzählt oder aber per curl Befehl das gleiche macht. Und das am besten in Form eines Ziels wie man das ja schon in der Basis machen kann. Ich schaffe es aber nur eine simple anzeige dessen auf die Uhr zu schicken. Ein Count wäre da schon viel cooler. Auf Dem Foto sieht man wie es aussehen soll aber ist halt ohne Funktion. Es wird nur das angezeigt was ich der Uhr per Befehl hinschicke.


    Hast du da eine Idee wie das geht?


    Cool wäre halt wenn man sich den code des Entwicklers angucken könnte dann würde ich evtl draus schlauer werden wobei ich mir da nicht so sicher wäre :D


    Die Uhr macht aber definitiv Spass und hat sehr viel Potenzial durch die ganze Offenheit. Leider ist das englisch sprachige Forum ziemlich tot und ein deutsches gibt es ja nicht.


    Aber vielleicht können wir ja hier ein bisschen was reissen :)

  • Wollte gerade zum Probieren den Befehl mit der Katze in cmdtrigger einbauen per homebridge-config-ui-x und bekomme es auch nicht gespeichert. Was mach ich falsch? Im Json Validator bekomme ich auch einen Fehler aber ich krieg es einfach nicht hin den Fehler zu finden...

    Ich hab schon auf die Anführungszeichen geachtet, dabei musste ich deins kopieren...weil mein mac immer ein schräges draus gemacht hat...:rolleyes:


    sschuste kannst du helfen?



    {

    "accessory": "CmdTrigger",

    "name": "Neustart Raspi",

    "command": "curl - X POST - u 'dev:4d71xxxxxxxxxx76c52137abxxxb5d9e1axxxxx60ab6' - H 'Content-Type: application/json' - d ' {\"priority\": \"warning\",\"model\": {\"cycles\": 0,\"frames\": [{\"icon\": \"8440\",\"text\": \"HELLO\"}],\"sound\": {\"category\": \"notifications\",\"id\": \"cat\"}}}"

    http: //192.168.178.999:8080/api/v2/device/notifications""

    },


    Ich werde das mit diesen Json Strings in diesem leben denke nicht mehr auf die kette kriegen. Das sind für mich böhmische Dörfer...

  • Ich habe das script in einen Kurzbefehl eingebaut, da funzt es.

    Oder man baut es in eine .sh Datei:

    Code
    curl -X POST -u "dev:2d8f9c365f8d98eXXXXXSFGTREWQ57a9d711d27c0f9f99bf0c9596f2XXXX" -H "Content-Type: application/json" -d " {\"priority\": \"warning\",\"model\": {\"cycles\": 0,\"frames\": [{\"icon\": \"8440\",\"text\": \"HELLO\"}],\"sound\": {\"category\": \"notifications\",\"id\": \"cat\"}}}" http://192.168.178.00:8080/api/v2/device/notifications

    z.B.: HALLO.sh

    da funzt es auch


    Code
    {
    "accessory": "CmdTrigger",
    "name": "LaMetricHALLO",
    "command": "/usr/local/bin/HALLO.sh",
    "delay": "1000"
    }],

    Zum Thema Counter weis ich leider auch keine Lösung.

    Ich habe mir alle Infos zum Thema Lametric-API hier geholt:

    https://lametric-documentation…t-local-notification.html

  • Mir ist aufgefallen das man den Befehl so belassen kann wenn man es in eine Datei einbaut. Habe ich so auch noch nie gemacht. Werde ich morgen mal probieren. Heute bin ich ermüdet von dem rumprobieren.


    Hast du die erste Zeile mit #!/bin/bash weggelassen?


    Und wie hast du das mit einem KB gemacht? Kann ich das mal sehen? Dann kann man den weg über die Homebridge/cmdtrigger weglassen.


    Ja von der Seite habe ich meine Infos auch :)

  • Hast du die erste Zeile mit #!/bin/bash weggelassen?

    nein


    Und wie hast du das mit einem KB gemacht? Kann ich das mal sehen? Dann kann man den weg über die Homebridge/cmdtrigger weglassen.

    script über ssh ausführen

    host: deine ip

    Passwort: dein Passwort

    eingabe:

    Code
    curl -X POST -u "dev:2d8f9c365f8d98eXXXXXSFGTREWQ57a9d711d27c0f9f99bf0c9596f2XXXX" -H "Content-Type: application/json" -d " {\"priority\": \"warning\",\"model\": {\"cycles\": 0,\"frames\": [{\"icon\": \"8440\",\"text\": \"HELLO\"}],\"sound\": {\"category\": \"notifications\",\"id\": \"cat\"}}}" http://192.168.178.00:8080/api/v2/device/notifications
  • Achso bei Kurzbefehl Hatte ich an Siri Kurzbefehle gedacht ^^


    Aus dem Terminal hab ich den Befehl auch schon aufgeführt.

  • Ich werde das mit diesen Json Strings in diesem leben denke nicht mehr auf die kette kriegen. Das sind für mich böhmische Dörfer...

    JSON ist nicht so schwierig. Schwierig ist es, einen Befehl wie deinen curl-Befehl da oben in Anführungszeichen zu setzen, weil er schon Anführungszeichen enthält. Das ist tricky und ziemlich unübersichtlich und ich kenn nur wenige, die dafür nicht mindestens drei Anläufe brauchen.


    Erstmal muss der Befehl richtig geschrieben werden:

    curl - X POST - u 'dev:4d71x... ist nicht richtig. Es darf nicht - X heißen, sondern muss -X sein. Zwischen dem Minus und dem X darf kein Leerzeichen stehen. Das gleiche gilt für -u, -H und -d.


    Dann nehmen wir das Ding mal auseinander:

    curl

    -X POST

    -u 'dev:4d71xxxxxxxxxx76c52137abxxxb5d9e1axxxxx60ab6'

    -H 'Content-Type: application/json'

    -d 'viel krudes JSON'

    http://192.168.178.999:8080/api/v2/device/notifications


    Wie man sieht, wir curl mit fünf Parameternaufgerufen. Der letzte ist die Maschine die angesprochen werden soll: deine Lametric. Der erste ist die Methode, mit der Daten übergeben werden sollen: POST. Die anderen sind der User -u, der HTTP-Header -H und die Daten, die gesendet werden sollen, -d. Genau hinsehen! Das was hinter -u, -H und -d folgt, wird in Ticks (') eingeschlossen. Bei dir fehlt schon mal der Tick hinter deinem JSON-Zeugs.


    Das hier hier der JSON-Code. Deiner war falsch und dieser hier ist zumindest richtiges JSON. Ich habe ihn aber nicht an meiner Lametric ausprobiert.

    Dieser Code enthält Anführungszeichen! So kann man ihn zwar mit curl versenden, und so wäre er auch richtig in einem Shell-Script, aber so funktioniert er nicht in config.json. Aber wir brauchen ihn zunächst in jedem Fall in einer einzigen Zeile, also so:

    Code
    {"priority":"warning","model":{"cycles":0,"frames":[{"icon":"8440","text":"HELLO"}]},"sound":{"category":"notifications","id":"cat"}}


    Dein Befehl lautet also

    curl -X POST -u 'dev:4d71xxxxxxxxxx76c52137abxxxb5d9e1axxxxx60ab6' -H 'Content-Type: application/json' -d 'DEIN-JSON' http://192.168.178.999:8080/api/v2/device/notifications


    DEIN-JSON ersetzt du mit copy&paste mit dem JSON-Code, der da oben zu sehen ist.

    So könnte der curl-Befehl von der Shell abgesendet werden und damit kannst du testen, ob deine Lametric tatsächlich den Text HELLO zeigt und dazu das Geräusch cat abspielt.


    Wenn du das in config.json einsetzen willst, musst du den gesamten curl-Befehl in Anführungszeichen setzen. Das ist blöde, weil der Befehl schon Anführungszeichen enthält.

    Code
    {
      "accessory": "CmdTrigger",
      "name": "Neustart Raspi",
      "command": "curl-Befehl"
    },

    Daher müssen die Anführungszeichen im curl-Befehl maskiert werden, so dass das cmdtrigger-Plugin diese nicht als seine eigenen Anführungszeichen interpretiert. Das kann man mit Suchen und Ersetzen machen, damit es nicht Fluchen und Entsetzen wird.


    Ersetze alle " durch \" ergibt dann diesen curl-Befehl:

    curl -X POST -u 'dev:4d71xxxxxxxxxx76c52137abxxxb5d9e1axxxxx60ab6' -H 'Content-Type: application/json' -d '{\"priority\":\"warning\",\"model\":{\"cycles\":0,\"frames\":[{\"icon\":\"8440\",\"text\":\"HELLO\"}]},\"sound\":{\"category\":\"notifications\",\"id\":\"cat\"}}' http://192.168.178.999:8080/api/v2/device/notifications


    So sollte der Befehl in config.json funktionieren. So funktioniert er nicht mehr auf der Shell oder in einem Shell-Script!


    Bitte beachten: ich habe davon nichts ausprobiert und das alles kann daher immer noch Fehler enthalten.

  • Du bist wirklich ein Teufelskerl sschuste ! Ich kenne keinen der es fachlich so drauf hat und dazu noch eine gute Prise Witz in die Erklärung einbaut :) Eine echter Gewinn für das Forum hier! Das ganze hat jetzt geklappt,

    nur komischerweise miaut die Katze nicht mehr... Der Befehl ist doch der gleiche. das ist doch jedes mal die Nadel im Heuhaufen || Langsam denke ich es ist Willkür. Schicke ich denn Befehl aus dem Terminal kommt der ton. Schicke ich es aus der Homebridge mit cmdtrigger bleibt es stumm. schicke ich danach wieder mit Terminal bleibt es auch wieder stumm....Wer soll das verstehen.. Ich gebe es auf... Meine nerven sind einfach zu schwach dafür..



    So sieht das ganze aus und es kommt zwar die Meldung aber kein ton...


    Code
    {
    "accessory": "CmdTrigger",
                 "name": "Lametric",
                 "command": "curl -X POST -u 'dev:4d71e9f8105e3c5b76c5213xxxxxb5d9e1a9723b760ab6' -H 'Content-Type: application/json' -d '{\"priority\":\"warning\",\"model\":{\"cycles\":0,\"frames\":[{\"icon\":\"8440\",\"text\":\"HELLO\"}]},\"sound\":{\"category\":\"notifications\",\"id\":\"cat\"}}' http://192.168.178.xx:8080/api/v2/device/notifications"
            },


    UPDATE: Was soll ich sagen...? ich hab es nochmal mit der Variante LaMetric.sh probiert und dort den Befehl reingepackt wie zuvor von sschuste genannt und jetzt miaut die Katze auch. Weiss der Geier wo jetzt der unterschied ist aber ich bin erstmal glücklich ^^

  • Ich beschäftige mich gerade noch bisschen mit den Basics auf der Seite der API https://lametric-documentation…etric-time-reference.html.


    Wenn ich den Befehl

    curl GET http://192.168.178.xx:8080/api/v2/device/wifi --user dev:4d71e9f8105e3c5xxxxb760ab6 eingebe,


    bekomme ich.

    curl: (6) Could not resolve host: GET

    { "active" : true, "available" : true, "encryption" : "WPA", "ipv4" : "192.168.178.xx", "mac" : "54:C9:DF", "mode" : "dhcp", "netmask" : "255.255.255.0", "signal_strength" : 80, "ssid" :


    Ich kriege zwar ein Ergebnis aber warum spuckt er curl: (6) Could not resolve host: GET dazu aus?


    Gleiches mit dem audio Befehl. Das verändern der lautstärke klappt z.b. nicht. ist das auf der Doku Seite einfach so schwach dokumentiert oder wird dort etwas vorausgesetzt was ich nicht weiss? https://lametric-documentation…ce-docs/device-audio.html

  • curl -X GET

  • Tatsächlich habe ich das -x vorhin probiert und ging. Kannst du mir auch sagen wie ich die Lautstärke per put veraendern kann?


    Meine Idee war


    Code
    curl -X put http://192.168.178.:8080/api/v2/device/audio/20 --user dev:4d71e9f8105xxxxxx4675441c955b3b8e3274b5d9e1a9723b760ab6


    Funktioniert aber nicht. Wie gesagt die Doku ist für

    Mich zumindest mager.

  • Die Doku ist mager, aber trotzdem gut :D Aber sie könnte besser sein, indem die Herrschaften einfach mal gleich den curl-Befehl da hinschreiben.


    Es gibt zwei Möglichkeiten mit dem Audio:

    • Die eingestellte Lautstärke abfragen.
      Methode: GET.
      URL: Raspi-IP-Adresse + ":" + Port + /api/v2/device/audio.
      Also so ähnlich wie du es schon hast, aber halt nur so ähnlich. Sieht dann so aus:
      curl -X GET --user dev:4d71e9f8105xxxxxx4675441c955b3b8e3274b5d9e1a9723b760ab6 http://192.168.178.999:8080/api/v2/device/audio
    • Die eingestellte Lautstärke verändern.
      Methode: PUT.
      URL: Raspi-IP-Adresse + ":" + Port + /api/v2/device/audio.
      Die URL ist gleiche wie oben, aber hier muss nun noch die neue Lautstärke übergeben werden und zwar in JSON wie schon weiter oben
      beschrieben (und nicht, indem du hinten einfach mal die Zahl anhängst, nur weil dein Innerstes sich weigert, noch mal mit diesem shitty-JSON herumzumachen).

    Also muss da wieder der curl-Befehl zusammen gebastelt werden:

    curl -X PUT -u 'dev:4d71e9f8105e3c5b76c5213xxxxxb5d9e1a9723b760ab6' -H 'Content-Type: application/json' -d 'ZHE_JSON_STUFF' http://192.168.178.999:8080/api/v2/device/audio


    Und ZHE_JSON_STUFF ist laut Doku das hier:

    Code
    {
        "volume" : 100
    }

    Der muss in eine Zeile gebracht werden:

    {"volume" : 100}


    und da oben zwischen die Ticks eingebaut werden:

    …n/json' -d '{"volume" : 100}' http://192…


    oder:

    …n/json' -d '{"volume" : 20}' http://192…



    So sollte es gehen, aber ich habe es nicht getestet.

  • Für dich alten Hasen ist die Doku natürlich ausreichend ;) Das curl habe ich mir natürlich auch schon dazu gedacht. Hier scheitert es leider schon an meinem Verständnis da mal -u, ein ander mal --user verlangt wird und was bedeutet überhaupt -X?


    Ich hatte mit Lautstärke anhängen naiv wie ich bin einfach probiert weil es bei der Sonos API zb auch so gemacht wird. Aber nein das wäre ja zu einfach... Aber gut so steht es halt in der Doku und dann muss das halt so sein und ich muss den Mist irgendwie begreifen.


    Jedenfalls habe ich den Befehl zum ändern der Lautstärke im Terminal eingegeben und nur ein > bekommen was wohl nur bedeutet das nichts passiert ist...zumindest weiss ich nicht wie ich das interpretieren soll. Dieses > hatte ich gestern des öfteren während des Testens aber wenn man nicht mal weiss was das überhaupt bedeutet dann bringt das natürlich nichts im Debuggen...



    curl -X PUT -u 'dev:4d71e9f8105exx5d9exxxxxxab6' -H 'Content-Type: application/json' -d '{"volume" : 50}‘ http://192.168.178.53:8080/api/v2/device/audio

  • Hier scheitert es leider schon an meinem Verständnis da mal -u, ein ander mal --user verlangt wird

    Der Unterschied zwischen -u und --user ist mit drei Worten beschreiben: es gibt keinen. Sie bedeuten das gleiche, sie machen das gleiche, sie verhalten sich gleich. Die kurze Version -u ist die, die man vor 20 Jahren verwendete, da gab's nur die, bis dann einer auf die Idee kam, man könne doch zur Abwechslung etwas selbsterklärende Optionsbezeichner verwenden.


    So bedeutet

    --data das gleiche wie -d

    --request das gleiche wie -X

    --header das gleiche wie -h

    und curl kennt noch viele Dutzende anderer Optionen.


    Diese ausführlichen Optionsbezeichner können im Gegensatz zu den kurzen aus vielen Zeichen bestehen. Die kurzen nur aus einem einzigen Buchstaben, wobei Groß- und Kleinschreibung unterschieden werden. Damit curl nicht durcheinander kommt, denn in --request steht ja auch ein -r drin (und das macht was völlig anderes), werden die langen Bezeichner mit zwei Minuszeichen (--) angeführt.


    Das ist inzwischen ein Standard bei vielen Programmen. Welche Optionen es gibt und wie die Bezeichner heißen, kann man im Manual nachschlagen, beispielsweise mit man curl (Blättern mit Leertaste, Abbruch mit q).


    Beispielsweise kann man die Homebridge starten mit dem Befehl:

    homebridge -I -Q -C -U /var/homebridge oder genauso gut mit:

    homebridge --insecure --no-qrcode --color --user-storage-path /var/homebridge


    und was bedeutet überhaupt -X

    Ein Webserver kennt verschiedene Methoden. Alles, was man mit http:// anspricht, ist im Grunde ein Webserver. So ist also auch die Lametric einer, oder genauer: sie stellt einen bereit. Die Methoden, die man gegen Webserver anwenden kann, sind GET, POST PUT, DELETE und andere, wobei nicht jeder Webserver alle unterstützt. Letztendlich werden diese Methoden dazu benutzt, um Daten zwischen dem Browser (in diesem Falle: curl) und dem Server (in diesem Falle Lametric) auszutauschen. Mit dem -X (oder --request) wird curl mitgeteilt, welche Methode angewendet werden soll.


    GET ist die Standardmethode, also kann man im curl-Befehl das -X GET auch weglassen. Dein Safari macht im Grunde immer ein GET, um eine Seite aufzurufen, aber wenn's dann ins eingemachte geht wie beispielsweise beim hin und her von Daten beim Online-Shopping oder hier im Forum beim Posten von Daten, dann macht der Safari auch POST und PUT, auch wenn man das weder unmittelbar sieht noch irgendwie mitbekommt.


    Noch ein Punkt zu curl: Der einzige Parameter, der ohne einen Optionsbezeichner wie -h oder -u aufgerufen wird, ist die URL selbst. Wenn im curl-Befehl also etwas steht, was keinen Optionsbezeichner hat, dann ist es immer die Serveradresse, die curl benutzen soll. Daher hat weiter oben dein Befehl eine Fehlermeldung geworfen:


    curl GET http://192.168.178.xx:8080/api/v2/device/wifi --user dev:4d71e9f8105e...


    Curl glaubt nun, du willst einen Server namens GET verwenden. Und gibt dann zurück:

    curl: (6) Could not resolve host: GET (gleichbedeutend mit: es konnte keine IP-Adresse für den Server GET gefunden werden).


    Jedenfalls habe ich den Befehl zum ändern der Lautstärke im Terminal eingegeben und nur ein > bekommen was wohl nur bedeutet das nichts passiert ist...zumindest weiss ich nicht wie ich das interpretieren soll.

    In nahezu 100% aller Fälle bedeutet das, dass ein Anführungszeichen (") oder ein Tick (') fehlt und das du jetzt bitte noch was eingeben sollst. Ich glaube nicht, dass ich diese Anzeige mehr als 150.000 mal in meinem Leben gesehen habe. Jeder sieht die, wenn er sehr krude Kommandos mit vielen Anführungszeichen auf der Shell eingibt und jeder sucht sich dann die Augen blind. Das kannst du 30 Jahre lang machen und bekommst trotzdem ein >.


    Ich baue schwierige Befehle wie solche curl-Befehle mit einem Haufen JSON drin immer in Textedit zusammen. Erst nehme ich das JSON-Zeugs, formatiere es, so das ich halbwegs sehen kann, ob es korrekt ist (und schieb's auch gern nach JSONlint rein), dann bringe ich das in eine Zeile, dann schreibe ich -d' davor und ein ' dahinter und so bastel ich mir Stück für Stück den Befehl zusammen. Auf der Shell ist das nur was für Autisten oder Fans von hohem Frustlevel.

    curl -X PUT -u 'dev:4d71e9f8105exx5d9exxxxxxab6' -H 'Content-Type: application/json' -d '{"volume" : 50}‘ http://192.168.178.53:8080/api/v2/device/audio

    -d '{"volume" : 50} <-- was soll das dahinten für ein Ding sein? Sind wir hier im Französichunterricht? Das muss kein `, sondern ein ' sein.

  • wieder mal ein großes DANKE an dich und deine Geduld!


    Das ist das was mich mit am meisten an der Sache aufregt. So eine klitzekleine Kleinigkeit übersehe ich einfach weil die Dinger ''‘‘‘‘‘‘‘ fast gleich aussehen. Ich pack mir die befehle immer in Notizen rein und baue sie dort zusammen. Und das richtig fiese ist das wenn ich zB. in Notizen aus einer 0 eine 1 mache,


    "cycles": 1,"


    sich die " in “ ändern man das einfach manchmal nicht mitbekommt. Und dann sitze ich davor und denke mir warum zur Hölle tust du verdammter Computer das? Das ist so unnötig! Ich glaube das ist eine Notizen app Eigenheit. Ich werde mal deinem Rat mit textedit folgen und hoffe mir weiteren Frust zu ersparen.

    Ich habs getestet und es passiert das gleiche... Als würde der computer mich einfach nur ärgern wollen. Aber sicher gibt es auch dafür eine Erklärung ...


    Auf jeden Fall noch mal Danke für deine Zeit sschuste:)

  • Versuch's mal in Textedit mit "Format" - "In reinen Text umwandeln"

  • Bei der Bearbeitung "solch komplexer Sachen" nehme ich Visual Studio Code (VS Code). Das ist ein freier Quelltexteditor von Microsoft (MS). Wenn man als Mac-/Apple-User den inneren Widerstand gegen MS überwunden hat, bekommt einen - wie ich finde - guten Editor für alle möglichen Belange. VS Code kann man sich kostenfrei https://code.visualstudio.com/download herunterladen. Dort gibt es sogenannten Extensions. Diese gibt es auch für JSON. Für das oben beschriebene Verfahren "pretty" JSON (also die strukturierte Variante mit den eingerückten Befehlen etc.) in minimized JSON (also in einer Zeile) umzuwandeln, gibt es auch eins. Dann dauert das umwandeln quasi 0,0001 Sek, weil man das in einer Tastenkombination erledigt hat. Man findet auch im Internet Webseiten auf denen man das erledigen lassen kann.

    Vielleicht hilft das mit dem "störrischen" JSON ein wenig besser zurecht zu kommen. Mir hilft das jedenfalls immer sehr.

  • Werde ich mir mal anschauen danke euch beiden.


    sschuste Der gewünschte Effekt stellt sich leider nicht ein. Die " ändern sich dadurch nicht.