Zustand Steckdosen /Temperatur per http api abfragen

    • Zustand Steckdosen /Temperatur per http api abfragen

      Hallo,

      wie kann ich den Zustand einer Funksteckdose per http api abfragen, und kann ich auch einen Wert von einem DS18 temperaturfühler per http api abfragen?
      Oder gibt es eine Doku für die http api ?

      Würde das SHC gerne per homebridge an das HomeKit von Apple anbinden.
      Das Schalten von Funksteckdose funktioniert schon per http api.

      Gruß
      Harpi
    • Im Folgenden die Schnittstellenberschreibung der APP Schnittstelle vom SHC 2.2.x:


      Räume auflisten

      Die URL index.php?app=shc&a&ajax=roomsjson&user=test&password=123456 gibt die Liste mit Räumen zurück.

      JavaScript Source Code

      1. [
      2. {
      3. "id": 6,
      4. "name": "Wohnzimmer"
      5. },
      6. {
      7. "id": 1,
      8. "name": "Kinderzimmer"
      9. },
      10. {
      11. "id": 2,
      12. "name": "Sensoren"
      13. }
      14. ]
      Display All


      Benutzer und Passwort sind die Zugangsdaten des in der App verwendeten Users, sind diese nicht angegeben wird automatisch die Berechtigung vom Gast verwendet.
      Alle Räume sind automatisch nach ihrer Order ID sortiert.


      Raum Elemente auslisten

      Die URL index.php?app=shc&a&ajax=roomelementsjson&id=1&user=test&password=123456 gibt die Liste mit den Elementen eines Raumes zurück.

      JavaScript Source Code

      1. [
      2. {
      3. "id": 4,
      4. "name": "Fernsehen",
      5. "icon": "shc-icon-tv",
      6. "state": 1,
      7. "type": "RadioSocket",
      8. "buttonText": 1
      9. },
      10. {
      11. "id": 5,
      12. "name": "NAS",
      13. "icon": "shc-icon-nas",
      14. "state": 1,
      15. "type": "Activity",
      16. "buttonText": 1
      17. },
      18. {
      19. "id": 7,
      20. "name": "Test Neustart",
      21. "icon": "",
      22. "state": 0,
      23. "type": "Reboot"
      24. },
      25. {
      26. "id": 8,
      27. "name": "Internet neu Verbinden",
      28. "icon": "shc-icon-reconnect",
      29. "state": 1,
      30. "type": "FritzBox",
      31. "function": 5
      32. },
      33. {
      34. "type": "Input",
      35. "id": 10,
      36. "name": "Test Eingang",
      37. "state": 1
      38. },
      39. {
      40. "id": 11,
      41. "name": "Test WOL",
      42. "icon": "",
      43. "state": 0,
      44. "type": "WakeOnLan"
      45. },
      46. {
      47. "id": 3,
      48. "name": "Countdown",
      49. "icon": "shc-icon-countdown",
      50. "state": 1,
      51. "type": "RadioSocket",
      52. "buttonText": 1
      53. }
      54. ]
      Display All

      JavaScript Source Code

      1. [
      2. {
      3. "type": "Box",
      4. "name": "AVM Steckdosen",
      5. "elements": [
      6. {
      7. "id": "08761 0184476",
      8. "name": "Sensor-ID-08761 0184476",
      9. "icon": "shc-icon-avmPowerSensor",
      10. "type": "AvmMeasuringSocket",
      11. "temp": "21,8 °C",
      12. "power": "6,3 W",
      13. "energy": "45,15 kWh"
      14. },
      15. {
      16. "id": "08761 0174723",
      17. "name": "Sensor-ID-08761 0174723",
      18. "icon": "shc-icon-avmPowerSensor",
      19. "type": "AvmMeasuringSocket",
      20. "temp": "21,8 °C",
      21. "power": "125,8 W",
      22. "energy": "79,67 kWh"
      23. },
      24. {
      25. "id": "08761 0184596",
      26. "name": "Sensor-ID-08761 0184596",
      27. "icon": "shc-icon-avmPowerSensor",
      28. "type": "AvmMeasuringSocket",
      29. "temp": "21,4 °C",
      30. "power": "14,7 W",
      31. "energy": "32,98 kWh"
      32. }
      33. ]
      34. },
      35. {
      36. "id": "5",
      37. "name": "Licht",
      38. "icon": "shc-icon-ldr",
      39. "type": "LDR",
      40. "val": "98%"
      41. },
      42. {
      43. "id": "4",
      44. "name": "Feuchte",
      45. "icon": "shc-icon-hygrometer",
      46. "type": "Hygrometer",
      47. "val": "50%"
      48. },
      49. {
      50. "id": "3",
      51. "name": "Regen",
      52. "icon": "shc-icon-rain",
      53. "type": "RainSensor",
      54. "val": "50%"
      55. },
      56. {
      57. "type": "Box",
      58. "name": "Temperaturen",
      59. "elements": [
      60. {
      61. "id": "1",
      62. "name": "Test DHT",
      63. "icon": "shc-icon-dht",
      64. "type": "DHT",
      65. "temp": "28,5 °C",
      66. "hum": "56,8%"
      67. },
      68. {
      69. "id": "28-ab08de9275",
      70. "name": "Test DS18X20",
      71. "icon": "shc-icon-ds18x20",
      72. "type": "DS18x20",
      73. "temp": "28,5 °C"
      74. },
      75. {
      76. "id": "2",
      77. "name": "BMP",
      78. "icon": "shc-icon-bmp",
      79. "type": "BMP",
      80. "temp": "28,5 °C",
      81. "press": "1.011,4 hPa",
      82. "alti": "340,5m"
      83. }
      84. ]
      85. }
      86. ]
      Display All

      Benutzer und Passwort sind wie bei den Räumen, die ID ist die Raum ID. Wie auch bei den Räumen sind alle Elemente automatisch richtig sortiert.
      Die beide Boxen zeigen einen Querschnitt über alle möglichen Elemente, anhand des Eintrages "type" können die möglichen Elemente unterschieden werden.


      Raum Elemente Synchronisieren

      Die URL index.php?app=shc&a&ajax=roomsyncjson&id=1&user=test&password=123456 gibt die Liste mit den Statusdaten der Elementen eines Raumes zurück.

      JavaScript Source Code

      1. {
      2. "success": true,
      3. "switchables": {
      4. "3": 1,
      5. "4": 1,
      6. "5": 1,
      7. "7": 0
      8. },
      9. "wol": {
      10. "11": 0
      11. },
      12. "readables": {
      13. "10": 1
      14. },
      15. "ds18x20": [],
      16. "dht": [],
      17. "bmp": [],
      18. "analog": [],
      19. "syncAvmPowerSocket": []
      20. }
      Display All

      JavaScript Source Code

      1. {
      2. "success": true,
      3. "switchables": [],
      4. "wol": [],
      5. "readables": [],
      6. "ds18x20": {
      7. "28-ab08de9275": {
      8. "temp": "28,5 °C"
      9. }
      10. },
      11. "dht": {
      12. "1": {
      13. "temp": "28,5 °C",
      14. "hum": "56,8%"
      15. }
      16. },
      17. "bmp": {
      18. "2": {
      19. "temp": "28,5 °C",
      20. "press": "1.011,4 hPa",
      21. "alti": "340,5m"
      22. }
      23. },
      24. "analog": {
      25. "5": {
      26. "value": "98%"
      27. },
      28. "4": {
      29. "value": "50%"
      30. },
      31. "3": {
      32. "value": "50%"
      33. }
      34. },
      35. "syncAvmPowerSocket": {
      36. "08761-0184476": {
      37. "temp": "21,8 °C",
      38. "power": "6,3 W",
      39. "energy": "45,15 kWh"
      40. },
      41. "08761-0184596": {
      42. "temp": "21,4 °C",
      43. "power": "14,7 W",
      44. "energy": "32,98 kWh"
      45. },
      46. "08761-0174723": {
      47. "temp": "21,8 °C",
      48. "power": "125,8 W",
      49. "energy": "79,67 kWh"
      50. }
      51. }
      52. }
      Display All
      Auch hier sind Benutzername und Passwort nötig, zurück bekommst du die aktuelle Statusdaten eines Raumes. Der Index ist jeweils die ID des Elements und die Einträge die jeweiligen Daten.


      Elemente Schalten

      Um die Funktionen zu schalten musst du jeweils nur die URL index.php?app=shc&a&ajax=executeappswitchcommand&sid=3&command=0&user=test&password=123456 aufrufen, wobei die ID die Element ID ist und der Command 0 für "aus und "1" für an.

      zurück bekommst du ein JSON String der entweder nur wie folgt aussieht wenn alles i.O. ist:

      JavaScript Source Code

      1. {
      2. "success": true
      3. }
      oder im Fehlerfall z.B.:

      JavaScript Source Code

      1. {
      2. "success": false,
      3. "message": "Ungültige ID"
      4. }
      Wenn du noch Fragen hast melde dich einfach. Wie gesagt die Detailtiere Doku in der auch alle Elemente beschrieben sind wird noch etwas dauern, mit ein bisschen Probieren reicht das aber denke ich fürs erste aus. Ich habe mir einfach nach und nach die Elemente erstellt und die Einbindung in der APP Programmiert.


      Benutzer zu Hause
      Die URL index.php?app=shc&a&ajax=userathomejson&user=test&password=123456 gibt die Liste mit den Benutzern zu Hause und dessen Status zurück.

      JavaScript Source Code

      1. {
      2. "success":true,
      3. "0":{"id":1,"name":"Test 1","state":1},
      4. "1":{"id":2,"name":"Test 2","state":1},
      5. "2":{"id":3,"name":"Test 3","state":0},
      6. "3":{"id":4,"name":"Test 4","state":0}
      7. }


      Meldungen

      Die URL index.php?app=shc&a&ajax=getwarningsjson&user=test&password=123456 gibt die Liste mit den aktuell Anstehenden Meldungen zurück.

      JavaScript Source Code

      1. [
      2. "Kein laufender Schaltserver gefunden. Für die Funktion des SHC muss mindestens ein Schaltserver erreichbar sein!",
      3. "Der Sheduler läuft nicht",
      4. "Der Sensorpunkt "SensorPoint-1" hat seit mehr als 2 Stunden keine Daten mehr übermittelt",
      5. "Der Sensorpunkt "SensorPoint-1000" hat seit mehr als 2 Stunden keine Daten mehr übermittelt",
      6. "Der Sensorpunkt "SensorPoint-999" hat seit mehr als 2 Stunden keine Daten mehr übermittelt"
      7. ]