Ga naar inhoud


PHP / JSON vraagje


Con

Aanbevolen berichten

Zoals sommigen weten ben ik erg bezig met Domoticz en dat

gaat voortvarend. Ik heb inmiddels een PHP pagina geschreven

die waarden uit Domoticz haalt,

 

Nu wil ik waarden naar Domoticz sturen, bijvoorbeeld setpoints.

Als ik een url in mijn browser zet lukt dat voortreffelijk, bv de url;

192.168.178.25:8080/json.htm?type=command&param=udevice&idx=141&nvalue=0&svalue=14

En mijn setpoint van idx 141 (slaapkamerthermostaat) wijzigt in 14 graden.

 

Maar ik wil deze url versturen via mijn PHP pagina.

 

Ik heb er inmiddels veel over gelezen en weet dat het kan alleen

vallen niet de juiste kwartjes bij mij op de juiste plek.

 

Weet iemand wat voor een json/php commandos je moet gebruiken

om deze url te versturen in php?

aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W11, Intel Nuc i5 met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites


Er vanuit gaande dat je de tabel zoals in deze post wil bijwerken...

 

Wat je wil doen is een update, namelijk je hebt een oude waarde en zou die willen veranderen in een nieuwe waarde.

Dus je zult hier ook gebruik moeten maken van een POST methode, waarbij na het aanpassen ook de gewijzigde tabel weergegeven wordt (AJAX??).

[Vu+ Solo4K] - [VTi 13.x]

[TVV Basic+] - [CD TopHD]
Ik vind het nieuwe overzicht met ongelezen topics in een tijdslijn maar niks...

Link naar reactie
Delen op andere sites

Con,

 

Dit kan je heel gemakkelijk doen door gebruik te maken van "fopen" in php. Een url wordt gezien als een file, dus alle functies die je voor een file kan gebruiken kan je ook gebruiken voor url's.

Domoticz heeft alleen "de andere kant op" voorbeelden, dus uitlezen van status etc; https://www.domoticz.com/wiki/Extracting_status_and_measuring_values_with_PHP

“Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill

Link naar reactie
Delen op andere sites

Er vanuit gaande dat je de tabel zoals in deze post wil bijwerken...

 

Wat je wil doen is een update, namelijk je hebt een oude waarde en zou die willen veranderen in een nieuwe waarde.

Dus je zult hier ook gebruik moeten maken van een POST methode, waarbij na het aanpassen ook de gewijzigde tabel weergegeven wordt (AJAX??).

Bijna goed.

 

Soms zal ik één waarde wijzigen in het tabel. Juist die enen waarde wil ik dan versturen.

En iedere keer als ik één waarde wijzig dan moeten 2 variabele worden verzonden.

Dus ik neem aan dat de standaard POST niet toepasbaar is.

Nu geldt dat ieder INPUT-veld wordt verstuurd en dat wil ik niet, alleen de gewijzigde waarde.

 

Maar PHP en JSON is één van mijn zwakste kanten dus zeg het maar als ik het verkeerd zie.

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W11, Intel Nuc i5 met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

Con,

 

Dit kan je heel gemakkelijk doen door gebruik te maken van "fopen" in php. Een url wordt gezien als een file, dus alle functies die je voor een file kan gebruiken kan je ook gebruiken voor url's.

Domoticz heeft alleen "de andere kant op" voorbeelden, dus uitlezen van status etc; https://www.domoticz.com/wiki/Extracting_status_and_measuring_values_with_PHP

"fopen" had ik niet bedacht, dan zou ik eerder denken aan "store" of iets dergelijks.

Maar ik geef het een kans en ga dat uitproberen.

 

Inderdaad, de "andere kant op" werkt perfect en daar maak ik ook driftig gebruik van.

Maar versturen van variabelen... ik heb me stijf gezocht, al dagen lang zonder resultaat

zodat ik het snap. Let wel, volgens mij heb ik mogelijkheden voldoende gezien maar

weet deze niet te integreren in mijn PHP script.

aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W11, Intel Nuc i5 met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

Bijna goed.

 

Soms zal ik één waarde wijzigen in het tabel. Juist die enen waarde wil ik dan versturen.

En iedere keer als ik één waarde wijzig dan moeten 2 variabele worden verzonden.

Dus ik neem aan dat de standaard POST niet toepasbaar is.

Nu geldt dat ieder INPUT-veld wordt verstuurd en dat wil ik niet, alleen de gewijzigde waarde.

 

Maar PHP en JSON is één van mijn zwakste kanten dus zeg het maar als ik het verkeerd zie.

 

Je zal voor elke lijn in je tabel een update knopje moeten voorzien; en via POST wordt dan enkel die bijgewerkt; alle andere blijven normaal behouden.

&nvalue=0&svalue=14

Indien bovenstaande je beide variabelen zijn, dan ken je degene die reeds in de tabel stond (ik denk dat dit die nvalue is), en dien je enkel diegene die je via de tekstbox ingebracht hebt door te sturen (svalue).

[Vu+ Solo4K] - [VTi 13.x]

[TVV Basic+] - [CD TopHD]
Ik vind het nieuwe overzicht met ongelezen topics in een tijdslijn maar niks...

Link naar reactie
Delen op andere sites

Het tabel ziet er nu als volgt uit;

post-36489-0-80058400-1454578611.jpg

 

De laatste kolom is de invulkolom (dat moet nog beter)

en ik heb nu één verzendknop.

 

Nu worden inderdaad alle variabelen gepost

althans de volgende URL wordt automatisch

gegenereerd;

http://192.168.178.30/?spwoo=22.0&spvlo=23.0&spslp=18.0&spdou=18.0&spbij=15.0&spkeu=18.0&sptin=15.0&spcon=21.0

aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W11, Intel Nuc i5 met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

Dat is een intern ip-adres dus daar kan men niet naar toe.

Als ik;

192.168.178.25:8080/json.htm?type=command&param=udevice&idx=141&nvalue=0&svalue=11

in mijn browser invul dan wordt de waarde wél verzonden/gewijzigd.

Want dit interne adres is een Raspberry.

 

Dus deze URL wil ik verzenden via PHP.

aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W11, Intel Nuc i5 met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

op je intern ip adres kan jij zelf binnen je huis netwerk verzenden maar je zal nog iets moeten verzinnen om dit ook buiten je huis netwerk te bereiken

VU+Uno4KSe(1Gb/2,5"HD/Vti15)/VU+DUO(320GB/2.5"HD-Vti11)/Maxdigital (Openpli7.3)- Triax 88cm(Astra 23,5-19,2E)- Channelmaster 1,2 m draaibaar

Link naar reactie
Delen op andere sites

op je intern ip adres kan jij zelf binnen je huis netwerk verzenden maar je zal nog iets moeten verzinnen om dit ook buiten je huis netwerk te bereiken

Dat laatste gaat niet, ik krijg geen toegang tot mijn netwerk van buitenaf.

zie ook: https://www.sat4all.com/forums/topic/350679-raspberry-als-webserver/

 

Daar heb ik mij helaas bij neer moeten leggen. Dus nu hoef ik alleen maar

van intern naar intern en tot nu toe lukt dat nog niet in PHP.

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W11, Intel Nuc i5 met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

Con, vergeet de idee dat je slechts één verzend knop kan gebruiken. Dat gaat echt niet lukken.

Voor elke ruimte/kraan zal je naast de ingeefbox een verzendknop moeten voorzien.

 

Dat zal de enige manier zijn om elke kraan correct aan te kunnen sturen en individueel te regelen.

[Vu+ Solo4K] - [VTi 13.x]

[TVV Basic+] - [CD TopHD]
Ik vind het nieuwe overzicht met ongelezen topics in een tijdslijn maar niks...

Link naar reactie
Delen op andere sites

Con, vergeet de idee dat je slechts één verzend knop kan gebruiken. Dat gaat echt niet lukken.

Voor elke ruimte/kraan zal je naast de ingeefbox een verzendknop moeten voorzien.

 

Dat zal de enige manier zijn om elke kraan correct aan te kunnen sturen en individueel te regelen.

Oké, ik ga eraan werken, moet ik een en ander om"scripten".

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W11, Intel Nuc i5 met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

Con, vergeet de idee dat je slechts één verzend knop kan gebruiken. Dat gaat echt niet lukken.

Voor elke ruimte/kraan zal je naast de ingeefbox een verzendknop moeten voorzien.

 

Dat zal de enige manier zijn om elke kraan correct aan te kunnen sturen en individueel te regelen.

Als je in je script welke de pagina genereert als "default" waarde de huidige waarde van je instelling zet, dan kan je prima een knop gebruiken. Zo te zien doe je dat al....  Want ik zie naast de woonkamer de huidige temperatuur van 22.0 graden staan, en het invul vak heeft ook 22.0 graden erin staan..

“Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill

Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
×
×
  • Nieuwe aanmaken...