Your blocks make no sense. In english your block says:
send the command (get the state of Item (build text from (get item DWD_…) and (get item DWD…))) to Amazon_Echo…
Note I’m shortening the Item names using …
Let’s work from the inside to the outside.
The innermost blocks are get item. First you get the Item Object for DWD_..._Description_1 and then you get the Item Object for DWD_..._Instruction_1. An Item Object is not a String. It has all sorts of properties and methods.
Next you try to build a String out of those two Items. But, again, an Item Object is’t a String. You can’t just smoosh two non-String Objects together using create text with. You need to have Strings.
Then you try to get the state of something that isn’t an Item. You have what ever random noise was created when you tried to build a String out of two non-String Objects. But even if you were able to create some String out of those two Item Objects, they won’t be the name of a single Item. So the get state of item wouldn’t be able to get the state of any Item because you didn’t pass it an Item.
There is no magic in programming and that includes Blockly. Computers do not know what you mean. They only know what you tell them and the insist on doing exactly what you tell them. You need to think in the same way.
As I presented this, work from the inside to the outside (I’m trying to approximate blocks with text).
You want the states from two Items.
[get state of item ] [item DWD_..._Description_1]
[get state of item ] [item DWD_..._Instruction_1]
Next you want to concatenate the states of those two Items into one String
[create text with [get state of item][item DWD_..._Description_1] |
| [get state of item][item DWD_..._Instruction_1] ]
Now we have one String. We want to send that as a command to the echo Item.
[send command [create text with [get state of item][item DWD_..._Description_1] | to [item Amazon_Echo_Spirch ]
| | [get state of item][item DWD_..._Instruction_1] ] |