@Niklas-Schoen Mit Node-Red ist es doch sehr einfach.
Du liest über einen iobroker in Node Dein Objekt aus - baust über einen Change Node die URL und übergibst diesem einem HTTP-Request Node - der auch eine Basic Authentication übergibt.
Das sind 3-4 Nodes je nachdem wie Du das triggern möchtest.
Ich mach Dir mal ein Beispiel - ich lese als Datenpunkt den String z. Bsp "microsoft" und hänge dann ".com" und den Rest für die URL an und übergebe das dem HTTP-Request Node.
Basic Authentication habe ich nichts angegeben aber das ist selbsterklärend in dem HTTP-Request Node.
Hier der Flow zum Testen:
[
{
"id": "7c137d0b.bd8124",
"type": "http request",
"z": "dce8fa20.2e93c8",
"name": "",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"x": 1350,
"y": 320,
"wires": [
[
"f9dc7268.16b3b"
]
]
},
{
"id": "6c167017.42f4e",
"type": "ioBroker get",
"z": "dce8fa20.2e93c8",
"name": "test",
"topic": "0_userdata.0.test",
"attrname": "payload",
"payloadType": "value",
"x": 960,
"y": 320,
"wires": [
[
"88c1b523.772e08"
]
]
},
{
"id": "bcdaa5e0.3c0fb8",
"type": "inject",
"z": "dce8fa20.2e93c8",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "trigger",
"payloadType": "str",
"x": 810,
"y": 320,
"wires": [
[
"6c167017.42f4e"
]
]
},
{
"id": "88c1b523.772e08",
"type": "change",
"z": "dce8fa20.2e93c8",
"name": "",
"rules": [
{
"t": "set",
"p": "url",
"pt": "msg",
"to": "\"http://\" & payload & \".com\"",
"tot": "jsonata"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1130,
"y": 320,
"wires": [
[
"67c5e032.4345e",
"7c137d0b.bd8124"
]
]
},
{
"id": "67c5e032.4345e",
"type": "debug",
"z": "dce8fa20.2e93c8",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "url",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 1350,
"y": 260,
"wires": []
},
{
"id": "f9dc7268.16b3b",
"type": "debug",
"z": "dce8fa20.2e93c8",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 1550,
"y": 320,
"wires": []
}
]
Hier ein Screenshot - wie gesagt die Basic Authentisierung musst Du nur in der Request Node anhacken und Credentials eingeben.
screen.png
Die Ausgabe des letzten Debug Nodes zeigt Dir dann den Output der HTML Page.
Wenn Du keinen externen/manuellen Trigger brauchst - setzt Du anstelle des iobroker get und inject nodes einfache eine iobroker in node - und der ruft Dir die Seite bei jeder Aktualisierung/änderung des Objektes im iobroker auf.
Das Analysieren der HTML Daten/Codes, die von der Webpage zurückgeliefert werden - das ist dann das Parsen - da bin ich raus.
Um das evtl. bisschen praxisnäher zu machen - habe ich mal die Webseite dieses Threads zusammengestellt.
Ausserdem gibt es html parser node - da musst dann die Dich interessierenden Sections angeben und werden Dir als Array zurückgegeben.
Hier siehst DU also als URL diesen Thread hier - wobei genau dieser als Object im iobroker abgelegt ist. "40556/"String & Wert Parsen"
screen.png
screen.png
Im HTML Parser habe ich angegeben, dass ich alle title Sections haben möchte und dann siehst im Debug wie das extrahiert wird - oben drüber siehst den HTML Output. Aber wie gesagt da müssen Dir dann Leute ggf. helfen die Web programmierung mehr beherrschen.
Hier noch der Flow:
[
{
"id": "7c137d0b.bd8124",
"type": "http request",
"z": "dce8fa20.2e93c8",
"name": "",
"method": "GET",
"ret": "txt",
"paytoqs": "ignore",
"url": "",
"tls": "",
"persist": false,
"proxy": "",
"authType": "",
"x": 1410,
"y": 280,
"wires": [
[
"f9dc7268.16b3b",
"f3944e9.d49e5b"
]
]
},
{
"id": "6c167017.42f4e",
"type": "ioBroker get",
"z": "dce8fa20.2e93c8",
"name": "test",
"topic": "0_userdata.0.test",
"attrname": "payload",
"payloadType": "value",
"x": 1030,
"y": 280,
"wires": [
[
"88c1b523.772e08"
]
]
},
{
"id": "bcdaa5e0.3c0fb8",
"type": "inject",
"z": "dce8fa20.2e93c8",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "trigger",
"payloadType": "str",
"x": 910,
"y": 280,
"wires": [
[
"6c167017.42f4e"
]
]
},
{
"id": "88c1b523.772e08",
"type": "change",
"z": "dce8fa20.2e93c8",
"name": "",
"rules": [
{
"t": "set",
"p": "url",
"pt": "msg",
"to": "\"https://forum.iobroker.net/topic/\" & payload",
"tot": "jsonata"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 1190,
"y": 280,
"wires": [
[
"67c5e032.4345e",
"7c137d0b.bd8124"
]
]
},
{
"id": "67c5e032.4345e",
"type": "debug",
"z": "dce8fa20.2e93c8",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "url",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 1400,
"y": 220,
"wires": []
},
{
"id": "f9dc7268.16b3b",
"type": "debug",
"z": "dce8fa20.2e93c8",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 1610,
"y": 220,
"wires": []
},
{
"id": "f3944e9.d49e5b",
"type": "html",
"z": "dce8fa20.2e93c8",
"name": "",
"property": "payload",
"outproperty": "payload",
"tag": "title",
"ret": "html",
"as": "single",
"x": 1590,
"y": 280,
"wires": [
[
"8e34c445.0d1158"
]
]
},
{
"id": "8e34c445.0d1158",
"type": "debug",
"z": "dce8fa20.2e93c8",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 1830,
"y": 220,
"wires": []
}
]