@paul53 vielen herzlichen Dank, funktioniert auf Anhieb
NEWS
Latest posts made by vbernd
-
RE: LoRaWAN MQTT -> iobroker Objekte (Newbie)
-
LoRaWAN MQTT -> iobroker Objekte (Newbie)
Hallo an Alle,
ev. kann mir IOBroker / MQTT / LoRaWAN Anfänger hier wer weiterhelfen, stehe auf dem Schlauch:Ich habe ein LoRaWAN-Gateway am Dachboden und einen LoRaWAN-Füllstandssensor an den IBC-Containern im Garten montiert. Signal ist da, alles ist in TTN eingebunden, Daten kommen bei TTN an.
Der "Uplink payload formatter" auf TTN sieht wie folgt aus:
function decodeUplink(input) { var data = {}; data.payload_type = input.bytes[0]; data.fuellstand = input.bytes[5]; data.temperatur = input.bytes[6]; return { data: data }; }
und liefert dieses Ergebnis zum IOBroker (mqtt-client):
{"end_device_ids":{"device_id":"eui-############","application_ids":{"application_id":"############"},"dev_eui":"ZZZZZZZ############ZZZZ","join_eui":"############","dev_addr":"############"},"correlation_ids":["as:up::#########################","gs:conn::#########################","gs:up:host:01:#########################","gs:uplink::#########################","ns:uplink::#########################","rpc:/ttn.lorawan.v3.GsNs/HandleUplink::#########################","rpc:/ttn.lorawan.v3.NsAs/HandleUplink:#########################"],"received_at":"2022-08-08T05:02:13.263995730Z","uplink_message": {"session_key_id":":#########################","f_port":16,"f_cnt":24, "frm_payload":"EAAAAAAMEpoADBOaAA4amgAOHpo=", "decoded_payload":{"fuellstand":12,"payload_type":16,"temperatur":18}, "rx_metadata":[{"gateway_ids":{"gateway_id":"############","eui":"############"},"timestamp":843522929,"rssi":-93,"channel_rssi":-93,"snr":8.8,"frequency_offset":"-630","location":{"latitude":############,"longitude":############,"altitude":####,"source":"SOURCE_REGISTRY"},"uplink_token":"########################","channel_index":6}],"settings":{"data_rate":{"lora":{"bandwidth":125000,"spreading_factor":7}},"coding_rate":"4/5","frequency":"867700000","timestamp":843522929},"received_at":"2022-08-08T05:02:13.047628893Z","confirmed":true,"consumed_airtime":"0.071936s","locations":{"user":{"latitude":############,"longitude":############,"altitude":274,"source":"SOURCE_REGISTRY"}},"network_ids":{"net_id":"000013","tenant_id":"ttn","cluster_id":"eu1","cluster_address":"eu1.cloud.thethings.network"}}}
Mittels nachfolgendem IOBroker-Skript möchte ich jetzt die Werte aus dem "deoded_payload" herausholen und in ein IOBroker-Objekt speichern - das funktioniert aber leider so nicht (Objekte sind zwar da, aber immer nur mit 0 gefüllt):
on({id: "mqtt-client.0.v3.############@ttn.devices.eui-##########.up", change: "any"}, function (obj) { ParseCommand(obj); }); function ParseCommand(obj) { let name = "###########"; let fuellstand = 1; let payload_type = 1; let temperatur = 1; let LoRaDestination = "javascript.0.LoRa."; try { var Wasserstand = JSON.parse(obj); fuellstand = Wasserstand.decoded_payload.fuellstand; payload_type = Wasserstand.payload_type; temperatur = Wasserstand.temperatur; let StateFuellstand = LoRaDestination + name + ".fuellstand"; let StatePayloadType = LoRaDestination + name + ".payload_type"; let StateTemperatur = LoRaDestination + name + ".temperatur"; createState(StateFuellstand, 0); createState(StatePayloadType, 0); createState(StateTemperatur, 0); setState(StateFuellstand, fuellstand); setState(StatePayloadType, payload_type); setState(StateTemperatur, temperatur); } catch (e) { return; } }
Ich vermute mal, das letztere JavaScript ist so noch nicht in Ordnung..... jemand ein "best practice" oder eine Anregung?
Danke und lg -
RE: Wert wird nicht weitergegeben
Okay, welches Skript auch immer jetzt funktioniert, es geht nach einer Weile
Werd das noch genau herausfinden...Danke!
-
RE: Wert wird nicht weitergegeben
Danke, aber es hilft nix:
Blockly:
es passiert nix.JavaScript:
Wert zeigt immer nur "%s" anEr sollte aber auf 91 stehen:
Simulieren ging plötzlich 1x, dann nicht mehr: (die Abfrage im Drittsysttem zeigte einmal "99" statt "%s")
-
Wert wird nicht weitergegeben
Ich möchte den SoC meines E-Autos mittels IOBroker an meine (andere) Haussteuerung übergeben.
Das dortige Objekt kann ich mittels Browser-Url setzen und abfragen.Bei der JavaScript-Rule hingegen funktioniert die Übertragung des Werts nicht,
IOBroker setzt mein Objekt immer "%s" und verwendet nicht den eigentlich gedachten Wert (den ich in IOBroker korrekt abfragen kann).Url ist:
http://IPADDRESS/remote/?login=LOGIN&pass=PASS&koid=123&kovalue=%sDie Abfrage von http://IPADDRESS/remote/?login=LOGIN&pass=>PASS&koid=123 gibt mit dann immer "%s" aus...
Jemand eine Idee was es da haben könnte?