Hi,
I think I have solved this problem.
Here is my workflow, it’s not totally ready but I’m geting close
Will do the fining testning tonight, therefore is the in and output not correct!
[{"id":"205212a7.3d0f4e","type":"tab","label":"Laptop","disabled":false,"info":""},{"id":"5cb3bf1d.956bb","type":"api-call-service","z":"205212a7.3d0f4e","name":"Fibaro Wall Plug 2 on","server":"da215a6e.38deb8","service_domain":"homeassistant","service":"turn_on","data":"{\"entity_id\":\"switch.fibaro_system_fgwpe_f_wall_plug_switch\"}","mergecontext":"","output_location":"","output_location_type":"none","x":720,"y":406,"wires":[[]]},{"id":"9aa9de98.2791","type":"api-call-service","z":"205212a7.3d0f4e","name":"Fibaro Wall Plug 2 off","server":"da215a6e.38deb8","service_domain":"homeassistant","service":"turn_off","data":"{\"entity_id\":\"switch.fibaro_system_fgwpe_f_wall_plug_switch\"}","mergecontext":"","output_location":"","output_location_type":"none","x":920,"y":443,"wires":[["a1984d15.5786f"]]},{"id":"a45610e.3e286f","type":"server-state-changed","z":"205212a7.3d0f4e","name":"Ipod","server":"da215a6e.38deb8","entityidfilter":"device_tracker.freddas_ipod","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":false,"x":90,"y":264,"wires":[["e46762.d2bf28a","a2371297.2b944"]]},{"id":"53d110b4.b1453","type":"debug","z":"205212a7.3d0f4e","name":"Timer on2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":500,"y":449,"wires":[]},{"id":"b9d9880d.84b318","type":"debug","z":"205212a7.3d0f4e","name":"Timer on1","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":1373,"y":254,"wires":[]},{"id":"40a5bd13.4f75c4","type":"inject","z":"205212a7.3d0f4e","name":"home","topic":"","payload":"home","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":90,"y":314,"wires":[["a2371297.2b944"]]},{"id":"a9f43eab.814ea","type":"inject","z":"205212a7.3d0f4e","name":"not_home","topic":"","payload":"not_home","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":100,"y":354,"wires":[["a2371297.2b944"]]},{"id":"a2371297.2b944","type":"switch","z":"205212a7.3d0f4e","name":"home/not home","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"home","vt":"str"},{"t":"eq","v":"not_home","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":320,"y":264,"wires":[["551150f1.4cbaf"],["2a8c3243.73ab2e"]]},{"id":"2a8c3243.73ab2e","type":"change","z":"205212a7.3d0f4e","name":"send OFF","rules":[{"t":"set","p":"payload","pt":"msg","to":"off","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":540,"y":286,"wires":[["344ee726.ac9148"]]},{"id":"551150f1.4cbaf","type":"change","z":"205212a7.3d0f4e","name":"send ON","rules":[{"t":"set","p":"payload","pt":"msg","to":"on","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":540,"y":246,"wires":[["344ee726.ac9148"]]},{"id":"8ab28396.0743f","type":"switch","z":"205212a7.3d0f4e","name":"Laptop charging","property":"laptopCharging","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":318,"y":405,"wires":[["2a8c3243.73ab2e","53d110b4.b1453","b1784ee1.19b8"]]},{"id":"344ee726.ac9148","type":"mytimeout","z":"205212a7.3d0f4e","name":"2 hours","outtopic":"","outsafe":"on","outwarning":"","outunsafe":"off","warning":"0","timer":"7200","debug":false,"ndebug":false,"ignoreCase":false,"repeat":false,"again":false,"x":700,"y":246,"wires":[[],["4eefbc52.f698d4"]]},{"id":"b795eb86.28ee18","type":"function","z":"205212a7.3d0f4e","name":"total elapsed time","func":"var v_timeElapsedTot = context.global.g_timeElapsedTot || 0;\nvar v_timeElapsed = msg.count;\nvar v_laptopCharging;\n\n \nif (msg.payload == 'off' || msg.payload == 'reset') // reset total elapsed time if laptop has been charged or reset input \n{\n context.global.g_timeElapsedTot = 0;\n v_timeElapsedTot = 0;\n}\nelse\n{\n v_timeElapsedTot = (v_timeElapsedTot + v_timeElapsed); \n\n if (v_timeElapsedTot > 7200) // time limit for laptop on-time\n { // 7200 sec = 2 hours\n v_timeElapsedTot = 0;\n context.global.g_timeElapsedTot = 0;\n v_laptopCharging = 'on';\n }\n else\n {\n v_laptopCharging = 'off';\n \n if (msg.payload === 0) // save elapsed time, counter stoped\n {\n context.global.g_timeElapsedTot = v_timeElapsedTot;\n }\n }\n}\n\nmsg.timeElapsed = v_timeElapsed + \" seconds.\";\nmsg.totalTimeElapsed = v_timeElapsedTot + \" seconds.\";\n//msg.g_totalTimeElapsed = context.global.g_timeElapsedTot + \" seconds.\";\nmsg.laptopCharging = v_laptopCharging;\n\nreturn msg;\n","outputs":1,"noerr":0,"x":1162,"y":254,"wires":[["b9d9880d.84b318","8ab28396.0743f"]]},{"id":"4eefbc52.f698d4","type":"timed-counter","z":"205212a7.3d0f4e","name":"Laptop elapsed on-time","timelimit":"2","timeunit":"1000","withhold":false,"fixedtimeout":false,"pertopic":false,"x":911,"y":253,"wires":[["b795eb86.28ee18"]]},{"id":"6ae2a8c.c33c058","type":"mytimeout","z":"205212a7.3d0f4e","name":"1 hour","outtopic":"","outsafe":"on","outwarning":"","outunsafe":"off","warning":"0","timer":"3600","debug":false,"ndebug":false,"ignoreCase":false,"repeat":false,"again":false,"x":671,"y":449,"wires":[["a4be08bc.7a4878","3406cbb3.04a334","9aa9de98.2791"],[]]},{"id":"a4be08bc.7a4878","type":"change","z":"205212a7.3d0f4e","name":"Laptop charging OFF","rules":[{"t":"set","p":"laptopCharging","pt":"msg","to":"off","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":919,"y":486,"wires":[[]]},{"id":"b1784ee1.19b8","type":"change","z":"205212a7.3d0f4e","name":"send ON","rules":[{"t":"set","p":"payload","pt":"msg","to":"on","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":498,"y":405,"wires":[["6ae2a8c.c33c058","5cb3bf1d.956bb"]]},{"id":"3406cbb3.04a334","type":"debug","z":"205212a7.3d0f4e","name":"Timer on3","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":881,"y":527,"wires":[]},{"id":"ca5f2de3.9f26","type":"inject","z":"205212a7.3d0f4e","name":"Reset","topic":"","payload":"reset","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":971,"y":193,"wires":[["b795eb86.28ee18"]]},{"id":"e46762.d2bf28a","type":"debug","z":"205212a7.3d0f4e","name":"IPod","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":270,"y":220,"wires":[]},{"id":"2589f8a8.81e5d8","type":"comment","z":"205212a7.3d0f4e","name":"Control Fibaro wall plug for Laptop charger","info":"","x":180,"y":100,"wires":[]},{"id":"40d4fe76.126a4","type":"inject","z":"205212a7.3d0f4e","name":"Test","topic":"","payload":"0","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":971,"y":160,"wires":[["b795eb86.28ee18"]]},{"id":"85e8c68d.848128","type":"comment","z":"205212a7.3d0f4e","name":"Laptop on-time","info":"","x":660,"y":200,"wires":[]},{"id":"e5c1c3ee.7603f","type":"comment","z":"205212a7.3d0f4e","name":"Laptop charger on-time timer","info":"","x":700,"y":369,"wires":[]},{"id":"a1984d15.5786f","type":"api-current-state","z":"205212a7.3d0f4e","name":"Ipod ON?","server":"da215a6e.38deb8","outputs":2,"halt_if":"home","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"device_tracker.freddas_ipod","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1117,"y":443,"wires":[[],["551150f1.4cbaf"]]},{"id":"24775f7.99e54a","type":"comment","z":"205212a7.3d0f4e","name":"Is Laptop still on?","info":"","x":1140,"y":400,"wires":[]},{"id":"35303a2e.e55156","type":"server-state-changed","z":"205212a7.3d0f4e","name":"Laptop status","server":"da215a6e.38deb8","entityidfilter":"device_tracker.freddalaptop","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":false,"x":110,"y":200,"wires":[[]]},{"id":"8aca82fa.2193c","type":"api-current-state","z":"205212a7.3d0f4e","name":"Laptop ON?","server":"da215a6e.38deb8","outputs":2,"halt_if":"home","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"device_tracker.freddalaptop","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1130,"y":500,"wires":[[],[]]},{"id":"da215a6e.38deb8","type":"server","z":"","name":"Home Assistant"}]