Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Daten von JS Schnittstelle als Trigger - Smart Race

    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

    Daten von JS Schnittstelle als Trigger - Smart Race

    This topic has been deleted. Only users with topic management privileges can see it.
    • buggyracer79
      buggyracer79 @paul53 last edited by

      @paul53

      Vielen Dank soweit.....

      Ich habe jetzt einen neuen ioBroker Host aufgesetzt, zum Experimentieren.

      Da habe ich nur JS-Skripte und die (Simple) Restful-Api als Adapter drauf.

      Dann habe ich ein Objekt mit dem Namen VSC angelegt (Zustand - json).

      Dann ein Script angelegt:

      <block xmlns="https://developers.google.com/blockly/xml" type="request" id="NyVjp)~lQn6HZ@T2.99k" x="134" y="-485">
        <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
        <field name="WITH_STATEMENT">TRUE</field>
        <field name="LOG"></field>
        <value name="URL">
          <shadow type="text" id="a,o5a(^2s$,SEWL5?W/r">
            <field name="TEXT">http://192.168.1.230:8087</field>
          </shadow>
        </value>
        <statement name="STATEMENT">
          <block type="update" id="*RE^)4wY=b]R=w$tWTw8">
            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
            <field name="OID">0_userdata.0.SmartRace.VSC</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
              <block type="variables_get" id="lXB,4NEL{/LaT=I4taqq">
                <field name="VAR" id="let+d`iZw8YV|[:@Ykvm">result</field>
              </block>
            </value>
          </block>
        </statement>
      </block>
      

      Beim Objekt kommt dann aber folgendes raus:

      {
      "error": "command unknown",
      "getPlainValue": "http://192.168.1.230:8087/getPlainValue/stateID",
      "get": "http://192.168.1.230:8087/get/stateID/?prettyPrint",
      "getBulk": "http://192.168.1.230:8087/getBulk/stateID1,stateID2/?prettyPrint",
      "set": "http://192.168.1.230:8087/set/stateID?value=1&prettyPrint",
      "toggle": "http://192.168.1.230:8087/toggle/stateID&prettyPrint",
      "setBulk": "http://192.168.1.230:8087/setBulk?stateID1=0.7&stateID2=0&prettyPrint",
      "setValueFromBody": "http://192.168.1.230:8087/setValueFromBody?stateID1",
      "objects": "http://192.168.1.230:8087/objects?pattern=system.adapter.admin.0*&prettyPrint",
      "states": "http://192.168.1.230:8087/states?pattern=system.adapter.admin.0*&prettyPrint",
      "search": "http://192.168.1.230:8087/search?pattern=system.adapter.admin.0*&prettyPrint",
      "query": "http://192.168.1.230:8087/query/stateID1,stateID2/?dateFrom=2019-06-06T12:00:00.000Z&dateTo=2019-06-06T12:00:00.000Z&noHistory=false&aggregate=minmax&count=3000&prettyPrint"

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @buggyracer79 last edited by paul53

        @buggyracer79 sagte: Dann ein Script angelegt:

        Wozu?
        Die Datenschnittstelle vom SmartRace muss an die Simple-API senden mit der URL
        "192.168.1.xyz:8087/set/0_userdata.0.SmartRace.VSC?value=". Ich denke (hoffe), dass sie durch das zu sendende JSON ergänzt wird.

        buggyracer79 1 Reply Last reply Reply Quote 0
        • buggyracer79
          buggyracer79 @paul53 last edited by buggyracer79

          @paul53

          Da kommt leider gar nichts an........

          Bei Smartrace steht:
          Die Daten werden dabei als POST-Request im JSON-Format gesendet.

          Müsste ich die dann nicht über ein Script anfordern?

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @buggyracer79 last edited by paul53

            @buggyracer79 sagte: Müsste ich die dann nicht über ein Script anfordern?

            Laut Beschreibung werden die Daten bei einem Ereignis gesendet.
            Versuche es mal mit setBulk: "192.168.1.xyz:8087/setBulk?0_userdata.0.SmartRace.VSC="

            EDIT: In der Beispiel-URL wird das JSON an ein lokales PHP-Skript gesendet. Vielleicht muss man es ähnlich machen und dann aus diesem Skript an die Simple-API senden?

            buggyracer79 1 Reply Last reply Reply Quote 0
            • buggyracer79
              buggyracer79 @paul53 last edited by

              @paul53

              Uff......

              Das mag alles schon so sein.

              Ich bin zwar ein echter Noobie was das Coden angeht, aber ich habe schon das Gefühl, dass die Doku bei Smartrace etwas wenig hergibt....

              Wenn ich wüsste, wo ich mir das Grundlagenwissen aneignen könnte, dann würde ich das ja gerne so machen....
              So ist es mir schon fast peinlich, alles Schritt für Schritt erfragen zu müssen....

              WaTho 1 Reply Last reply Reply Quote 0
              • WaTho
                WaTho @buggyracer79 last edited by

                @buggyracer79 Hallo, ich hab dich gerade auch schon im Freeslotter-Forum gefunden. Die Datenschnittstelle von SmartRace und Simple-API sind nicht kompatibel. Man müsste entweder eine Zwischenschicht bauen, die das umwandelt oder gleich für den IoBroker einen eigenen Adapter bauen. Ersteres ist leichter umzusetzen, aber höherer Installationsaufwand, mehr Komplexität, mehr Wartungsaufwand, dafür bei mir quasi testweise fertig. Ein eigener Adapter wäre natürlich die sauberere Lösung. Da fehlt mir aber noch Erfahrung. Ich schau gerade, ob ich da beim Simple-API-Adapter was abgucken kann.

                buggyracer79 1 Reply Last reply Reply Quote 0
                • buggyracer79
                  buggyracer79 @WaTho last edited by

                  @watho

                  Hi,
                  cool, dass sich jemand damit beschäftigt. Ich bekomme noch immer nicht mal die Daten abgerufen.... Mals sehen, ob ich heute nochmal die Muse habe, mich damit zu beschäftigen....

                  WaTho 1 Reply Last reply Reply Quote 0
                  • WaTho
                    WaTho @buggyracer79 last edited by

                    @buggyracer79 Ich hätte einen Testadapter fertig, kann es aber nicht testen siehe Android-Problem im Freeslotter-Forum. Ist dein iobroker nur lokal verfügbar oder hängt der im öffentlichem Netz?

                    Falls es hier sonst noch jemanden gibt, der das Ausprobieren möchte und die App unter iOS oder MacOS benutzt, kann sich gerne melden. Ich nehme an dann funktioniert es, kann es aber nicht testen.

                    buggyracer79 1 Reply Last reply Reply Quote 0
                    • buggyracer79
                      buggyracer79 @WaTho last edited by

                      @watho

                      Cool!
                      Her damit! Ich kann ja über Postman simulieren.

                      WaTho 1 Reply Last reply Reply Quote 0
                      • WaTho
                        WaTho @buggyracer79 last edited by

                        @buggyracer79 Gibt es aktuell nur im Github https://github.com/watho/ioBroker.smart-race-event-receiver

                        Ich schau gerade, wie die Guidelines für Entwickler aussehen. Wahrscheinlich werde ich für den Adapter einen eigenen Beitrag aufmachen.
                        Der aktuelle Stand ist noch rudimentär. Ich habe aktuell nur das Event event.change_status umgesetzt. Der Adapter legt einen Datenpunkt smart-race-event-receiver.0.event.raceStatus an. Dorthin wird dann der neue Wert als Zeichenkette geschrieben, also z.B. 'running', 'ended' usw.

                        buggyracer79 1 Reply Last reply Reply Quote 0
                        • buggyracer79
                          buggyracer79 @WaTho last edited by buggyracer79

                          @watho

                          Also ich habe ein Beispiel an die IP des Brokers mit dem voreingestellten Port geschickt. Aber ins Objekt wurde nichts geschrieben.

                          Gesendet habe ich mit Postman als POST, Json Raw

                          {
                          "controller_id": "1",
                          "lap": 1,
                          "laptime": "0:13.861",
                          "laptime_raw": 13861,
                          "sector_1": "0:06.305",
                          "sector_1_pb": true,
                          "sector_2": "0:03.224",
                          "sector_2_pb": true,
                          "sector_3": "0:04.332",
                          "sector_3_pb": true,
                          "lap_pb": true,
                          "driver_data": {
                          "id": 2,
                          "name": "Marc",
                          "name_tts": "",
                          "active": "yes",
                          "start_no_text_style": "normal",
                          "team": "-",
                          "name_short": null,
                          "image": "",
                          "start_no": "",
                          "start_no_color_border": "rgb(68, 68, 68)",
                          "start_no_color_background": "rgb(68, 68, 68)",
                          "start_no_color_text": "rgb(68, 68, 68)"
                          },
                          "car_data": {
                          "color": "rgb(176, 243, 0)",
                          "brakes": null,
                          "active": "yes",
                          "tags": "[]",
                          "decoder_type": "Carrera (default)",
                          "image": "cdvfile://localhost/persistent/1684000048302.jpg",
                          "laps": 5,
                          "fuel": null,
                          "speed": null,
                          "tyres": "Ortmann",
                          "digital_analog": "digital",
                          "name": "Porsche 911 RSR Grello (911)",
                          "manufacturer": "Carrera",
                          "id": 40,
                          "interval_counter": 0,
                          "scale": "1:24",
                          "magnets": "yes",
                          "logo": "porsche.png",
                          "changed_on": null,
                          "interval": 0,
                          "sound": "-",
                          "comment": ""
                          },
                          "controller_data": {
                          "color_bg": "rgb(176, 243, 0)",
                          "color_text": "#000"
                          }
                          }

                          Fehlermeldung vom Adapter:

                          smart-race-event-receiver.0
                          2024-01-08 20:49:29.811 warn Invalid or unimplemented event type received: undefined

                          Ich nehme an, die hast einfach die einzelnen Werte nicht angelegt.

                          WaTho 1 Reply Last reply Reply Quote 0
                          • WaTho
                            WaTho @buggyracer79 last edited by

                            @buggyracer79
                            Ich hab aktuell nur den change_status-Event umgesetzt und würde bei dir wirklich nichts anzeigen. Abgesehen davon ist dein Format aber falsch. Da drumherum kommt immer noch der Part mit Timestamp und event.type

                            {
                              "time": 1684769957969, // Uhrzeit des Ereignisses als Unix-Timestamp
                              "event_type": "ui.lap_update", // Name des Ereignisses
                              "event_data": {
                                  // Die Daten des Ereignisses von dir
                              }
                            }
                            

                            Die Fehlermeldung kommt dann trotzdem lautet aber: Invalid or unimplemented event type received: ui.lap_update.

                            Wenn du was sehen willst, benutze folgendes:

                            {
                              "time": 1684769957969,
                              "event_type": "event.change_status",
                              "event_data": {
                                "old": "running",
                                "new": "ended"
                              }
                            }
                            
                            WaTho 1 Reply Last reply Reply Quote 0
                            • WaTho
                              WaTho @WaTho last edited by

                              Diskussionen zum Adapter dann bitte in Zukunft hier: https://forum.iobroker.net/topic/71939/test-adapter-smart-race-event-receiver-v0-0-x-github/

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              646
                              Online

                              31.7k
                              Users

                              79.9k
                              Topics

                              1.3m
                              Posts

                              3
                              15
                              685
                              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