Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Objekt per exec versenden

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Objekt per exec versenden

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

      Hallo,
      ich würde gerne meinen Momentanverbrauch, welchen ich per SML einlese, mit exec an meine Wallbox zur PV Überschussregelung senden. Ich habe das Vorher per Tasmota Script gemacht und hat einwandfrei funktioniert. Leider bekomme ich das beim besten willen und Stundenlangen Googeln mit Iobroker nicht hin. Kann mir hierbei jemand kurz helfen? Folgendes script habe ich bis jetzt getestet das Funktioniert solange ich einen Festen Wert eingebe. Sobald ich den Wert einer Objekt ID versenden will kommt an der Wallbox nichts an.

      schedule("*/3 * * * * *", async () => {

      const util = require('util');
      var uberschuss
      var uberschuss = getState("smartmeter.0.1-0:16_7_0__255.value").val;
      console.log(util.inspect(uberschuss, { showHidden: true, depth: null }));

      exec ('wget http://192.168.178.29/api/set?ids={"pGrid":uberschuss}')

      });

      OliverIO 1 Reply Last reply Reply Quote 0
      • OliverIO
        OliverIO @Hadde last edited by OliverIO

        @hadde

        klar, so kommt da nur das wort uberschuss an.
        du musst den wert schon mit in den string einbauen.
        javascript weiß nicht, das du im string eigentlich die variable meinst

        du kannst es mal so probieren. allerdings darf da kein leerzeichen drin vorkommen, sonst mag wget die url nicht

        console.log('wget http://192.168.178.29/api/set?ids={"pGrid":${uberschuss}}');
        exec('wget http://192.168.178.29/api/set?ids={"pGrid":${uberschuss}}');
        

        https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

        H 1 Reply Last reply Reply Quote 0
        • H
          Hadde @OliverIO last edited by

          @oliverio
          Vielen Dank für deine schnelle Antwort, leider funktioniert es so auch nicht. Hab es jetzt schon in allen möglichen variationen probiert, bei Tasmota war die variable in % davor und dahinter, funktioniert hier aber auch nicht. Ist es überhaut möglich einen Wert von einem Objekt zu versenden?

          OliverIO 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active last edited by

            Warum muss man das mit exec machen und nutzt nicht ein normalen http Aufruf?

            H 1 Reply Last reply Reply Quote 0
            • H
              Hadde @mickym last edited by

              @mickym
              Ok, hört sich gut an, nur weiß ich nicht wie ich das im iobroker mache. Könntest du mir ein Beispiel nennen?

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @Hadde last edited by mickym

                @hadde Nun am einfachsten ist mit NodeRed - Du kannst natürlich auch deine Logikmaschinen nehmen, wobei ich da nicht so fit bin. Mit NodeRed ist es halt am einfachsten.

                b46bbfbc-814e-44f9-8396-6b84047d45e4-image.png

                [
                   {
                       "id": "78d807f85810055e",
                       "type": "http request",
                       "z": "517cd16e4d7e6ae4",
                       "name": "",
                       "method": "GET",
                       "ret": "txt",
                       "paytoqs": "ignore",
                       "url": "",
                       "tls": "",
                       "persist": false,
                       "proxy": "",
                       "insecureHTTPParser": false,
                       "authType": "",
                       "senderr": false,
                       "headers": [],
                       "x": 730,
                       "y": 520,
                       "wires": [
                           [
                               "e3ae2635cf98e634"
                           ]
                       ]
                   },
                   {
                       "id": "e3ae2635cf98e634",
                       "type": "debug",
                       "z": "517cd16e4d7e6ae4",
                       "name": "http Request",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 930,
                       "y": 520,
                       "wires": []
                   },
                   {
                       "id": "07ec99d927ce9892",
                       "type": "inject",
                       "z": "517cd16e4d7e6ae4",
                       "name": "",
                       "props": [
                           {
                               "p": "payload"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "",
                       "payload": "2555.66",
                       "payloadType": "num",
                       "x": 340,
                       "y": 520,
                       "wires": [
                           [
                               "7eb5bce2f8fcb581"
                           ]
                       ]
                   },
                   {
                       "id": "7eb5bce2f8fcb581",
                       "type": "template",
                       "z": "517cd16e4d7e6ae4",
                       "name": "",
                       "field": "url",
                       "fieldType": "msg",
                       "format": "handlebars",
                       "syntax": "mustache",
                       "template": "http://192.168.178.29/api/set?ids={\"pGrid\": {{payload}} }",
                       "output": "str",
                       "x": 540,
                       "y": 520,
                       "wires": [
                           [
                               "78d807f85810055e"
                           ]
                       ]
                   }
                ]
                

                H 1 Reply Last reply Reply Quote 0
                • H
                  Hadde @mickym last edited by

                  @mickym
                  Puh, mit Node hab ich noch gar nichts gemacht. Muss ich mir mal ansehen obs damit klappt. Danke schon mal für die Vorlage.

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @Hadde last edited by

                    @hadde Ja ich weiß auch nicht ob es ein POST oder eine GET Request mit Body ist - aber damit kannst es am einfachsten probieren. Ich hab Dir ja den Import geschickt, damit Du es ausprobieren kannst.

                    H 1 Reply Last reply Reply Quote 0
                    • H
                      Hadde @mickym last edited by

                      @mickym
                      Vielen Dank für deine Hilfe, aber damit komme ich überhaut nicht klar. Ich weiß ja nicht mal wie man es startet oder schon läuft????

                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @Hadde last edited by

                        @hadde Na Ok - Du hättest eigentlich nur den Adapter installieren müssen, den Flow importieren müssen und auf die Inject Node drücken, ob es geht - den Rest hätten wir dann zusammen gemacht. Aber vielleicht gibts ja noch eine andere Lösung für Dich.

                        H 1 Reply Last reply Reply Quote 0
                        • OliverIO
                          OliverIO @Hadde last edited by

                          @hadde sagte in Objekt per exec versenden:

                          Ist es überhaut möglich einen Wert von einem Objekt zu versenden?

                          ja, leider hast du nicht geschrieben was bspw das log ausgegeben hat.
                          ich habe davor dir ja noch so ein console log geschrieben und dazu auch einen hinweis gegeben.
                          auch kann es sein das der user iobroker gar keine berechtigung für wget hat
                          alternativ kann man natürlich auch ein blockly block mit request nehmen.
                          da bin ich aber nicht so firm, wie man da einen string zusammenbaut.

                          node-red ist natürlich ebenfalls eine möglichkeit

                          H 1 Reply Last reply Reply Quote 0
                          • H
                            Hadde @mickym last edited by

                            @mickym
                            Den Adapter hab ich installiert und den Flow importiert. Da bin ich dir dankbar das du mir das so vorgibst. Aber wie setzte ich das ganze nun in gang? Oder läuft es schon und funktioniert nicht? Ich kenne mich mit Node einfach nicht aus. GET und POST hab ich auch schon geändert, aber keine Ahnung ob es funktioniert, es kommt jedenfalls nichts an.

                            1 Reply Last reply Reply Quote 0
                            • H
                              Hadde @OliverIO last edited by

                              @oliverio
                              Das Log gibt alle 3 Sekunden das hier aus

                              javascript.0
                              2023-11-26 19:04:57.001 info script.js.Ladesteuerung.Überschuss_Senden: exec: wget http://192.168.178.29/api/set?ids={"pGrid":${uberschuss}}

                              javascript.0
                              2023-11-26 19:04:57.001 info script.js.Ladesteuerung.Überschuss_Senden: 131

                              javascript.0
                              2023-11-26 19:04:57.000 info script.js.Ladesteuerung.Überschuss_Senden: getState(id=smartmeter.0.1-0:16_7_0__255.value, timerId=undefined) => {"val":131,"ack":true,"ts":1701021894709,"q":0,"from":"system.adapter.smartmeter.0","user":"system.user.admin","lc":1701021894709

                              Haken bei EXEC erlauben ist gesetzt und funktioniert auch mit einem Fest eingegebenen Wert, nur nicht mit der Variable.

                              OliverIO 1 Reply Last reply Reply Quote 0
                              • OliverIO
                                OliverIO @Hadde last edited by

                                @hadde

                                ah jetzt,
                                anstatt anführungszeichen müssen es backticks sein. vergess ich immer wieder

                                console.log(`wget http://192.168.178.29/api/set?ids={"pGrid":${uberschuss}}`);
                                exec(`wget http://192.168.178.29/api/set?ids={"pGrid":${uberschuss}}`);
                                
                                
                                H 1 Reply Last reply Reply Quote 0
                                • H
                                  Hadde @OliverIO last edited by

                                  @oliverio
                                  DU BIST DER WAHNSINN, das wars, jetzt funktionierts!!!!!
                                  VIELEN DANK.
                                  Macht weiter so, ihr seid spitze!!!
                                  Auch an mickym nochmals danke für deine Zeit.

                                  1 Reply Last reply Reply Quote 0
                                  • mickym
                                    mickym Most Active last edited by

                                    OK dann hast Du ja nun eine Lösung.

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    668
                                    Online

                                    31.7k
                                    Users

                                    79.8k
                                    Topics

                                    1.3m
                                    Posts

                                    3
                                    16
                                    346
                                    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