I finally figured out the permissions issue, i simply added the user openhab to the pi group. 
I have added a timeout to my bindings and i tried adding a String Item linked to the output channel, but after a while it seemed easier to go back to the exec examples, so ive re-written my config files.
I even threw in the .rules-file since the examples used them, but im still not getting anywhere…
Im starting to think that i should skip exec all-together and use some sort of shellscript to check MQTT-topics and react to certain states with certain commands.
But thats kind of a bad idea as well, since im just as incompetent with MQTT and linux, but at least i got that part of my project working…
I can verify that the rules are executed in the events.log:
2020-01-12 20:49:05.281 [ome.event.ItemCommandEvent] - Item 'tvCommand' received command OFF
2020-01-12 20:49:05.289 [vent.ItemStateChangedEvent] - tvCommand changed from ON to OFF
2020-01-12 20:49:05.293 [ome.event.ItemCommandEvent] - Item 'tvCommand_Args' received command standby 0
2020-01-12 20:49:05.296 [nt.ItemStatePredictedEvent] - tvCommand_Args predicted to become NULL
2020-01-12 20:49:05.299 [ome.event.ItemCommandEvent] - Item 'tvCommand_Run' received command ON
But still no action, tv stays on…
my current files:
exec.things:
Thing exec:HDMICEC:TV [ command="%2$s", interval=0, timeout=20, autorun=false ]
exec.items:
Switch tvCommand
String theReturn "result [%s]"
// state of the execution, is running or finished
Switch tvCommand_Run {channel="exec:HDMICEC:TV:run", autoupdate="false"}
// Arguments to be placed for '%2$s' in command line
String tvCommand_Args {channel="exec:HDMICEC:TV:input"}
// Output of command line execution
String tvCommand_Out {channel="exec:HDMICEC:TV:output"}
exec.sitemap:
sitemap exec label="HDMI CEC"
{
Frame {
Switch item=tvCommand label="TV_pwr" mappings=["ON"="on","OFF"="off"]
Text item=theReturn
}
}
exec.rules:
rule "execRules"
when
Item tvCommand received command
then
if (receivedCommand==ON ) {
tvCommand_Args.sendCommand("echo on 0 | cec-client -s -d 1")
}
else if (receivedCommand==OFF ) {
tvCommand_Args.sendCommand("echo standby 0 | cec-client -s -d 1")
}
// Trigger execution (if autorun false)
tvCommand_Run.sendCommand(ON)
// the Run indicator state will go ON shortly, and return OFF when script finished
end
rule "process your results"
when
Item tvCommand_Run changed from ON to OFF
then
// Logging of raw command line result
logInfo("HDMI-CEC command exec", "Result:" + tvCommand_Out.state )
theReturn.postUpdate(tvCommand_Out.state.toString)
end