API leest waardes maar 1 keer bij Arduino startup

EthernetClient client;

en

 client.stop();

Volgens mij zet je daar de client stil, toch ?
Als jij een HTTP dinges gaat doen, heb je daar dan die client niet voor nodig misschien ?
En als je 'm hebt uitgeschakeld, moet je 'm wellicht eerst weer inschakelen.
En ook wellicht even wachten tot ie er is.

Geen idee hoor, ik weet het echt niet.
Maar als ik het contact van de auto uitzet, kan ik op het gaspedaal trappen wat ik wil.
De auto gaat dan echt niet rijden hoor.

10 minuten later:
Maar even opgezocht.
Je start de verbinding wanneer je test of die verbinding er is, dat doe je zo:

if (client.connect(Fibaro, 80)) {

Ik ben bang dat het daar toch fout gaat.
Wanneer je een if... doet, dan is het resultaat waar, of niet waar.
Waar is dan een 1, niet waar is dan een nul.
Dat kun je 'misbruiken' door een test uit te voeren zoals jij dat hier probeert.
Maar de if... werkt onder de huid net iets anders.
En ik denk dat je daar je nu last van hebt.

Want de if... controleert of het resultaat niet een nul is.
En als het resultaat niet een nul is, dan is het een 1.
En de clou:
Client.connect geeft nooit een nul als resultaat.

Returns

Returns an int (1,-1,-2,-3,-4) indicating connection status :

SUCCESS 1
TIMED_OUT -1
INVALID_SERVER -2
TRUNCATED -3
INVALID_RESPONSE -4

Dan is de uitkomst dus altijd niet een nul, en daarom dus waar.

Das dus uit de Arduino Reference (klik !)

Als dit de oorzaak van je probleem mocht zijn, dan is de oplossing door te controleren of het resultaat van client.connect een 1 is.
Want dat geeft dus een nul wanneer het -1, -2, -3 of -4 is.

Ow, en om te debuggen zou ik het nog iets anders aanpakken.
Dan maak je dus een variabele die het resultaat van client.connect meekrijgt.
En die stuur je weer via de seriële poort.
Dan kun je zien of de verbinding tot stand gekomen is of niet.
En een klein beetje waarom niet.