Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Fragen zu SQLquery > JSON > c++

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Fragen zu SQLquery > JSON > c++

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      Kugelkopf last edited by

      Moin Moin!

      Also es geht um folgendes:

      Ich möchte gerne meine Wetterdaten auf einem epaper Display darstellen, welches an einem Wemos d1mini (ESP8266) hängt.

      Das ganze soll via HTTP abfrage funktionieren.

      Soweit läuft das auch mit den aktuellen Daten. Dh.: Ich habe ein Javascript erstellt, welches ein paar Datenpunkte anlegt die ich dann via durch den simpleAPI Adapter vom ESP aus abfrage.

      Mit einzelnen Werte klappt das wunderbar, allerdings würde ich gerne ein Luftdruck oder auch Temperatur Diagram (Verlauf) erstellen auf dem Display. Dazu müsste ich die geloggten Werte von meinen Aqara Sensoren aus der mySql Datenbank auslesen und irgendwie aufarbeiten damit sie vom ESP gelesen werden können.

      Folgendes Problem ergibt sich:

      Damit die Daten nicht unendlich viele sind, sollten bei der SQL abfrage nur ein Wert pro Stunde der letzten 72h. abgefragt werden. also 72 Stück.

      Natürlich sollte neben dem Wert auch das Datum wann dieser Wert aufgenommen wurde mitgegeben werden um ihn später besser im Diagram zuordnen zu können.

      Also wie kann ich der Datenbank sagen, dass sie mir nur einen Wert pro Stunde geben soll?

      Des Weiteren muss ich das Ergebnis irgendwie in einen DP speichern. Damit ich diesen Wert dann via ESP abrufen kann und irgendwie wieder in seine Bestandteile zerpflücken kann… Wie?

      Vermutlich muss es dann auf zwei Arrays hinauslaufen oder? Und diese dann separat in 2 verschiedene DP als JSONstringify schreiben.

      Lässt sich bei einer einzelnen Abfrage direkt die Werte in zwei verschiedene Arrays speichern?

      Oder kann man auch alles in ein Array speichern und dann via JSON auseinander pflücken?! Fragen über Fragen!

      Die mysql Tabelle sieht übrigens so aus:

      ! MariaDB [(none)]> select id,val, FROM_UNIXTIME(ts/1000) as Date from iobroker.ts_number where id=85 AND (FROM_UNIXTIME(ts/1000) >= NOW() - INTERVAL 1 DAY); +----+-------+--------------------------+ | id | val | Date | +----+-------+--------------------------+ | 85 | -1.53 | 2019-02-01 01:35:07.1950 | | 85 | -1.39 | 2019-02-01 01:48:35.8540 | | 85 | -1.17 | 2019-02-01 01:59:53.1270 | | 85 | -0.94 | 2019-02-01 02:11:50.8330 | | 85 | -0.83 | 2019-02-01 02:16:54.6130 | | 85 | -0.63 | 2019-02-01 02:47:03.3080 | | 85 | -0.6 | 2019-02-01 02:58:30.6420 | | 85 | -0.56 | 2019-02-01 03:05:35.1830 | | 85 | -0.54 | 2019-02-01 03:09:58.5080 | | 85 | -0.47 | 2019-02-01 03:43:49.3480 | | 85 | -0.42 | 2019-02-01 04:00:19.6430 | | 85 | -0.43 | 2019-02-01 04:04:53.1050 | | 85 | -0.35 | 2019-02-01 04:26:26.5060 | | 85 | -0.15 | 2019-02-01 05:27:04.2980 | | 85 | -0.01 | 2019-02-01 05:42:13.6220 | | 85 | 0.04 | 2019-02-01 05:51:49.7460 | | 85 | 0.04 | 2019-02-01 06:34:25.8760 | | 85 | -0.04 | 2019-02-01 06:49:55.5900 | | 85 | -0.11 | 2019-02-01 07:40:36.6620 | | 85 | -0.15 | 2019-02-01 07:43:29.0900 | | 85 | -0.06 | 2019-02-01 08:12:57.0840 | | 85 | -0.04 | 2019-02-01 08:34:10.1040 | | 85 | -0.08 | 2019-02-01 08:40:34.6010 | | 85 | 0.31 | 2019-02-01 09:29:44.3570 | | 85 | 0.42 | 2019-02-01 09:37:49.8690 | | 85 | 0.79 | 2019-02-01 10:29:30.7230 | | 85 | 0.94 | 2019-02-01 10:49:12.9750 | | 85 | 1.18 | 2019-02-01 11:05:52.9850 | | 85 | 1.59 | 2019-02-01 11:27:25.8130 | | 85 | 1.69 | 2019-02-01 11:30:28.5440 | | 85 | 1.59 | 2019-02-01 11:47:38.3550 | | 85 | 1.44 | 2019-02-01 12:20:17.5470 | | 85 | 2.12 | 2019-02-01 12:55:08.2090 | | 85 | 2.63 | 2019-02-01 13:09:46.7780 | | 85 | 2.7 | 2019-02-01 13:11:28.1050 | | 85 | 3.17 | 2019-02-01 13:19:53.4400 | | 85 | 3.68 | 2019-02-01 13:44:37.2720 | | 85 | 3.7 | 2019-02-01 14:06:19.3090 | | 85 | 3.89 | 2019-02-01 15:06:02.3170 | | 85 | 3.5 | 2019-02-01 15:57:41.3130 | | 85 | 3.06 | 2019-02-01 16:51:51.9380 | | 85 | 2.63 | 2019-02-01 17:10:02.7810 | | 85 | 2.43 | 2019-02-01 17:22:50.2680 | | 85 | 2.39 | 2019-02-01 17:44:02.5350 | | 85 | 2.04 | 2019-02-01 19:35:16.3660 | | 85 | 2.06 | 2019-02-01 19:46:43.5010 | | 85 | 2.17 | 2019-02-01 19:53:48.0000 | | 85 | 2.13 | 2019-02-01 20:07:15.9400 | | 85 | 1.66 | 2019-02-01 20:35:52.4550 | | 85 | 1.23 | 2019-02-01 21:03:39.3600 | | 85 | 0.84 | 2019-02-01 21:27:13.4860 | | 85 | 0.72 | 2019-02-01 21:28:55.1300 | | 85 | 0.21 | 2019-02-01 22:02:35.2810 | | 85 | -0.21 | 2019-02-01 22:27:00.1160 | | 85 | -0.29 | 2019-02-01 22:27:41.2730 | | 85 | -0.81 | 2019-02-01 22:59:40.8890 | | 85 | -0.7 | 2019-02-01 23:24:26.4820 | | 85 | -0.58 | 2019-02-01 23:41:47.5790 | | 85 | -0.5 | 2019-02-02 00:01:29.8750 | | 85 | -0.52 | 2019-02-02 00:10:55.9130 | | 85 | -0.45 | 2019-02-02 00:22:43.4570 | | 85 | -0.36 | 2019-02-02 01:21:29.6280 | +----+-------+--------------------------+ 62 rows in set (0.09 sec) !

      Wie zu sehen ist, gibt es immer mehrere Einträge pro Stunde. Einer pro Stunde würde mir allerdings für mein ESP genügen.

      Die gleiche Ausgabe sieht via JS + Stringify speichern in Datenpunkt und abrufen via simpleAPI HTTP so aus:

      ! ````
      sendTo('sql.0', 'query', 'select id,val, FROM_UNIXTIME(ts/1000) as Date from iobroker.ts_number where id=85 AND (FROM_UNIXTIME(ts/1000) >= NOW() - INTERVAL 1 DAY)', function (result) {
      if (result.error) {
      console.error(result.error);
      } else {
      // show result
      console.log('Zeilen: ' + JSON.stringify(result));
      setState(idHistoryTemp1, JSON.stringify(result) );
      ! }});

      {
        "javascript.0.Wetterstation.HistTemp1": {
          "val": "{\"error\":null,\"result\":[{\"id\":85,\"val\":-1.39,\"Date\":\"2019-02-01T00:48:35.854Z\"},{\"id\":85,\"val\":-1.17,\"Date\":\"2019-02-01T00:59:53.127Z\"},{\"id\":85,\"val\":-0.94,\"Date\":\"2019-02-01T01:11:50.833Z\"},{\"id\":85,\"val\":-0.83,\"Date\":\"2019-02-01T01:16:54.613Z\"},{\"id\":85,\"val\":-0.63,\"Date\":\"2019-02-01T01:47:03.308Z\"},{\"id\":85,\"val\":-0.6,\"Date\":\"2019-02-01T01:58:30.642Z\"},{\"id\":85,\"val\":-0.56,\"Date\":\"2019-02-01T02:05:35.183Z\"},{\"id\":85,\"val\":-0.54,\"Date\":\"2019-02-01T02:09:58.508Z\"},{\"id\":85,\"val\":-0.47,\"Date\":\"2019-02-01T02:43:49.348Z\"},{\"id\":85,\"val\":-0.42,\"Date\":\"2019-02-01T03:00:19.643Z\"},{\"id\":85,\"val\":-0.43,\"Date\":\"2019-02-01T03:04:53.105Z\"},{\"id\":85,\"val\":-0.35,\"Date\":\"2019-02-01T03:26:26.506Z\"},{\"id\":85,\"val\":-0.15,\"Date\":\"2019-02-01T04:27:04.298Z\"},{\"id\":85,\"val\":-0.01,\"Date\":\"2019-02-01T04:42:13.622Z\"},{\"id\":85,\"val\":0.04,\"Date\":\"2019-02-01T04:51:49.746Z\"},{\"id\":85,\"val\":0.04,\"Date\":\"2019-02-01T05:34:25.876Z\"},{\"id\":85,\"val\":-0.04,\"Date\":\"2019-02-01T05:49:55.590Z\"},{\"id\":85,\"val\":-0.11,\"Date\":\"2019-02-01T06:40:36.662Z\"},{\"id\":85,\"val\":-0.15,\"Date\":\"2019-02-01T06:43:29.090Z\"},{\"id\":85,\"val\":-0.06,\"Date\":\"2019-02-01T07:12:57.084Z\"},{\"id\":85,\"val\":-0.04,\"Date\":\"2019-02-01T07:34:10.104Z\"},{\"id\":85,\"val\":-0.08,\"Date\":\"2019-02-01T07:40:34.601Z\"},{\"id\":85,\"val\":0.31,\"Date\":\"2019-02-01T08:29:44.357Z\"},{\"id\":85,\"val\":0.42,\"Date\":\"2019-02-01T08:37:49.869Z\"},{\"id\":85,\"val\":0.79,\"Date\":\"2019-02-01T09:29:30.723Z\"},{\"id\":85,\"val\":0.94,\"Date\":\"2019-02-01T09:49:12.975Z\"},{\"id\":85,\"val\":1.18,\"Date\":\"2019-02-01T10:05:52.985Z\"},{\"id\":85,\"val\":1.59,\"Date\":\"2019-02-01T10:27:25.813Z\"},{\"id\":85,\"val\":1.69,\"Date\":\"2019-02-01T10:30:28.544Z\"},{\"id\":85,\"val\":1.59,\"Date\":\"2019-02-01T10:47:38.355Z\"},{\"id\":85,\"val\":1.44,\"Date\":\"2019-02-01T11:20:17.547Z\"},{\"id\":85,\"val\":2.12,\"Date\":\"2019-02-01T11:55:08.209Z\"},{\"id\":85,\"val\":2.63,\"Date\":\"2019-02-01T12:09:46.778Z\"},{\"id\":85,\"val\":2.7,\"Date\":\"2019-02-01T12:11:28.105Z\"},{\"id\":85,\"val\":3.17,\"Date\":\"2019-02-01T12:19:53.440Z\"},{\"id\":85,\"val\":3.68,\"Date\":\"2019-02-01T12:44:37.272Z\"},{\"id\":85,\"val\":3.7,\"Date\":\"2019-02-01T13:06:19.309Z\"},{\"id\":85,\"val\":3.89,\"Date\":\"2019-02-01T14:06:02.317Z\"},{\"id\":85,\"val\":3.5,\"Date\":\"2019-02-01T14:57:41.313Z\"},{\"id\":85,\"val\":3.06,\"Date\":\"2019-02-01T15:51:51.938Z\"},{\"id\":85,\"val\":2.63,\"Date\":\"2019-02-01T16:10:02.781Z\"},{\"id\":85,\"val\":2.43,\"Date\":\"2019-02-01T16:22:50.268Z\"},{\"id\":85,\"val\":2.39,\"Date\":\"2019-02-01T16:44:02.535Z\"},{\"id\":85,\"val\":2.04,\"Date\":\"2019-02-01T18:35:16.366Z\"},{\"id\":85,\"val\":2.06,\"Date\":\"2019-02-01T18:46:43.501Z\"},{\"id\":85,\"val\":2.17,\"Date\":\"2019-02-01T18:53:48.000Z\"},{\"id\":85,\"val\":2.13,\"Date\":\"2019-02-01T19:07:15.940Z\"},{\"id\":85,\"val\":1.66,\"Date\":\"2019-02-01T19:35:52.455Z\"},{\"id\":85,\"val\":1.23,\"Date\":\"2019-02-01T20:03:39.360Z\"},{\"id\":85,\"val\":0.84,\"Date\":\"2019-02-01T20:27:13.486Z\"},{\"id\":85,\"val\":0.72,\"Date\":\"2019-02-01T20:28:55.130Z\"},{\"id\":85,\"val\":0.21,\"Date\":\"2019-02-01T21:02:35.281Z\"},{\"id\":85,\"val\":-0.21,\"Date\":\"2019-02-01T21:27:00.116Z\"},{\"id\":85,\"val\":-0.29,\"Date\":\"2019-02-01T21:27:41.273Z\"},{\"id\":85,\"val\":-0.81,\"Date\":\"2019-02-01T21:59:40.889Z\"},{\"id\":85,\"val\":-0.7,\"Date\":\"2019-02-01T22:24:26.482Z\"},{\"id\":85,\"val\":-0.58,\"Date\":\"2019-02-01T22:41:47.579Z\"},{\"id\":85,\"val\":-0.5,\"Date\":\"2019-02-01T23:01:29.875Z\"},{\"id\":85,\"val\":-0.52,\"Date\":\"2019-02-01T23:10:55.913Z\"},{\"id\":85,\"val\":-0.45,\"Date\":\"2019-02-01T23:22:43.457Z\"},{\"id\":85,\"val\":-0.36,\"Date\":\"2019-02-02T00:21:29.628Z\"}]}",
          "ack": false,
          "ts": 1549068249020,
          "q": 0,
          "from": "system.adapter.javascript.0",
          "lc": 1549068249020
        }
      }
      ````
      
      Könnt ihr mir hier weiterhelfen?!
      
      Vielen Dank im voraus!
      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      Support us

      ioBroker
      Community Adapters
      Donate

      492
      Online

      31.8k
      Users

      79.9k
      Topics

      1.3m
      Posts

      1
      1
      207
      Loading More Posts
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      The ioBroker Community 2014-2023
      logo