Node Red Telegram senden

Hallo, ich nutze ein Action Node um Nachrichten mit Telgram zu versenden.

json

{
    "title": "Min Price gesetzt",
    "message": "Price wurd auf xxx  gesetzt"
}

Wie kann ich unter message den wert einer Variable einfügen?
Danke

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)

Ich realisiere dass immer so, dass ich eine “function”-node "vorschalte, die mir den Text und die Variable zu einem msg.payload umwandelt und gebe dann in der “action”-node nur noch den msg.payload aus.

Hier mal ein Beispiel:

“funktion”-node:

let payload = { "message": "Es sind folgende FRITZ-Produkte offline:    " + (msg.fritzoffline)}
return {payload};

Wobei (msg.fritzoffline) in Deinem Fall Deine Variable “xxx” wäre.

“action”-Node:

1 „Gefällt mir“

Wenn xxx deine Variable ist:

{
    "title": "Min Price gesetzt",
    "message": "Price wurde auf {{ xxx }}  gesetzt"
}
2 „Gefällt mir“

Wenn ich jetzt {{flow.minprice}} eintrage geht es nicht, auch nicht wenn ich {{msg.payload}} eingebe. Danke

Poste mal deinen Flow, bzw. schau dir mal das Beispiel an.
Könnte mir vorstellen, du hast im action-Flow bei data nicht grafik sondern grafik ausgewählt.

[{"id":"85acce784e5f63e9","type":"inject","z":"92699fb1571e7eb0","name":"","props":[{"p":"wert","v":"100","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":110,"y":2960,"wires":[["614b7a1ba3bec8f1"]]},{"id":"97a4f2a2708aa984","type":"api-call-service","z":"92699fb1571e7eb0","name":"","server":"","version":7,"debugenabled":false,"action":"notify.persistent_notification","floorId":[],"areaId":[],"deviceId":[],"entityId":[],"labelId":[],"data":"{     \"title\": \"Min Price gesetzt\",     \"message\": \"Price wurde auf {{ flow.minprice }}  gesetzt\" }","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","blockInputOverrides":true,"domain":"notify","service":"persistent_notification","x":520,"y":2960,"wires":[[]]},{"id":"614b7a1ba3bec8f1","type":"change","z":"92699fb1571e7eb0","name":"","rules":[{"t":"set","p":"minprice","pt":"flow","to":"wert","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":290,"y":2960,"wires":[["97a4f2a2708aa984"]]}]
[{"id":"ccc84a2da14651d6","type":"api-call-service","z":"e2501e68a94b9fa0","name":"Min Price gesettz","server":"166521b8.009eae","version":7,"debugenabled":false,"action":"telegram_bot.send_message","floorId":[],"areaId":[],"deviceId":[],"entityId":[],"labelId":[],"data":"{\"title\":\"Min Price gesetzt\",\"message\":\"Price wurd auf {{msg.payload}} gesetzt\"}","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","blockInputOverrides":false,"domain":"telegram_bot","service":"send_message","x":1450,"y":840,"wires":[[]]},{"id":"166521b8.009eae","type":"server","name":"Home Assistent","addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"","connectionDelay":false,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":false}]

doch steht auf {} siehe unten

es liegt wohl daran, das die Variable nicht immer gesetzt wird, das muss ich mal prüfen.

:crayon:by HarryP: Zusammenführung Mehrfachpost (bitte “bearbeiten” Funktion nutzen)

Wenn du payload verwenden möchtest, lass msg. davor weg.
Ansonsten schau dir mein Beispiel mal an.

Aus welchem Node bekommst du den Payload mit dem Preis, kannst du dort nicht gleich die Flow-Variable setzen? Ansonsten würde ich im Change-Node eventuell nicht “Verschiebe” nutzen, sondern eher “Setze”.

:crayon:by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)

Hallo,
mit nur payload geht es jetzt.
Danke Dir
Er konnte die Variable nicht nutzen, weil ich diese gleich wieder in einen payload verschoben habe.
Wenn ich sage , setzte msg.payload to the value flow.test wird die variable nicht gesetzt.

Hallo, jetzt habe ich nur das Problem, wenn der günstigste Preis schon in der Nacht war, sagen wir mal um 3 Uhr morgen, dann lädt er die Battery tagsüber nicht automatisch. Wie kann ich den günstigsten Preis ermitteln, ab 7 Uhr z.B. wenn ich diese Abfrage.
Danke

Kannst du nicht deinen Flow posten, so richtig hab ich keine Idee was du da machst.
Wie bekommst du denn die Preise rein, als Array mit einem Objekt für jede Stunde?

[{"id":"28e4ef577ef58ef8","type":"inject","z":"e2501e68a94b9fa0","name":"7 Uhr","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"00 07 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":130,"y":760,"wires":[["302ca15e1aa67efc"]]},{"id":"302ca15e1aa67efc","type":"api-current-state","z":"e2501e68a94b9fa0","name":"Forecast unter 10","server":"166521b8.009eae","version":3,"outputs":2,"halt_if":"10","halt_if_type":"num","halt_if_compare":"lte","entity_id":"sensor.geschatzte_produktion_heute_summe","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":310,"y":760,"wires":[["518c7fd9de1e429f"],[]]},{"id":"518c7fd9de1e429f","type":"api-current-state","z":"e2501e68a94b9fa0","name":"min Today","server":"166521b8.009eae","version":3,"outputs":2,"halt_if":"0.001","halt_if_type":"num","halt_if_compare":"gt","entity_id":"sensor.evcc_tibber_forecast_min_value_today","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":510,"y":760,"wires":[["f01ed1a1addd16b8"],[]]},{"id":"f01ed1a1addd16b8","type":"smooth","z":"e2501e68a94b9fa0","name":"aufrunden","property":"payload","action":"mean","count":"1","round":"2","mult":"single","reduce":false,"x":700,"y":760,"wires":[["ccc84a2da14651d6","af5982b52ae2e989"]]},{"id":"af5982b52ae2e989","type":"mqtt out","z":"e2501e68a94b9fa0","name":"auf MinPrice setzten","topic":"evcc/site/batteryGridChargeLimit/set","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"645ecf47d4a95977","x":940,"y":760,"wires":[]},{"id":"ccc84a2da14651d6","type":"api-call-service","z":"e2501e68a94b9fa0","name":"Min Price gesetzt","server":"166521b8.009eae","version":7,"debugenabled":false,"action":"telegram_bot.send_message","floorId":[],"areaId":[],"deviceId":[],"entityId":[],"labelId":[],"data":"{\"title\":\"Min Price gesetzt\",\"message\":\"Price wurd auf {{ payload }} € gesetzt\"}","dataType":"json","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","blockInputOverrides":false,"domain":"telegram_bot","service":"send_message","x":970,"y":840,"wires":[[]]},{"id":"166521b8.009eae","type":"server","name":"Home Assistent","addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"","connectionDelay":false,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":false},{"id":"645ecf47d4a95977","type":"mqtt-broker","name":"Mqtt Brocker","broker":"192.168.7.21","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"3","keepalive":"60","cleansession":true,"autoUnsubscribe":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willRetain":"false","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""}]

Hier kommt der Code