Zoals eerder gezegd heb ik het mooi kunnen kopieren van een ander. De code hieronder komt uit de *.ino file. (en lijkt ook eerst ergens anders voor gebruikt te zijn)Speedy-Andre schreef op dinsdag 23 mei 2017 @ 17:05:
@TechApprentice Waar komt de notatie van de http commands vandaan?
Het lukt me niet door het ip van mijn Nodemcu te gebruiken en in de Homewizard heb ik post http gebruikt.
code:
1
2
3
4
5
6
7
8
9
10
| // Prepare the response. Start with the common header: String s = "HTTP/1.1 200 OK\r\n"; s += "Content-Type: text/html\r\n\r\n"; s += "<!DOCTYPE HTML>\r\n<html>\r\n"; // If we're setting the LED, print out a message saying we did if (val != NULL) { s += "Fan is now: "; s += val; } |
De code zoekt in de http request naar de naam van de "pagina" die opgevraagd wordt. Deze naam is de naam van het commando wat je wil uitvoeren.
code:
1
2
3
| if (req.indexOf("/away") != -1) { val = "away"; sendAway(); |
knip en plak
code:
1
2
3
4
5
| void sendAway() { Serial.println("Sending command 'away' to Itho ventilation unit..."); rf.sendCommand(IthoAway); Serial.println("Command 'away' has been sent!"); } |
Hierboven het Away commando als voorbeeld. Als Away dus gevraagd wordt via een http request dan val = Away. Dit zie je in de webbrowser die je gebruikt om het te testen.
Hierdoor wordt ook het sendAway getriggerd, wat in het laatste stukje code het rf.sendCommand(IthoAway) aanroept. Dat IthoAway staat in de library.
Tijdens het testen heb ik de hele tijd ook de serial monitor van de Arduino IDE aangehad omdat er best wel wat status/diagnose informatie zichtbaar wordt tijdens de init van de ESP en tijdens het ontvangen van de http request. En uiteraard een browser zoals Chrome bv. Home assistant ken ik verder niet, maar kan me voorstellen dat deze op een zelfde manier als Domoticz een http request kan doen. Is tenslotte niks meer dan een pagina opvragen.
[ Voor 5% gewijzigd door TechApprentice op 24-05-2017 15:28 . Reden: Type en Homeassistent ervaring toegevoegd ]