Hallo, Ich hätte ne Frage, ich hab 2 Ideen weiss aber nicht was die bessere ist. Also ich hab den Raspberry Pi der als Server läuft (Apache2). Auf der Website sind 3 LED Und 3 Button Heizung ein Aus Störung. Ich kann mit den Buttons den Zustand der Heizung verändern das klappt anhand PHP und PYTHON und SQLITE So jetzt möchte ich dass die 3 Bilder den realen Wert der Anlage schauen und diese an die Website schicken bzw diese verändern. 1 Lösung bevor ich eine Website aufrufe wird ein hpscript aufgerufen der wiederum ein pythonscriptaufruft. In diesem Script wird dann alles analysiert und dann die Website geschrieben wird in eine File die dann als html aufgerufen wird. 2 Lösung eine php website Also ich rufe heizung.php auf : 1Php --> Python --> SQLite 2 Php script schaut was in der Datenbank steht und benutzt dann Bild a oder b . Die Website wird dann durch echo übergeben. Vielen Dank im Voraus. Das wäre meine idee gibt es was leichteres zum beispiel durch javascript oder so ?
Charel P. schrieb: > Ich hätte ne Frage, ich hab 2 Ideen weiss aber nicht was die bessere > ist. Ich würde Dir gerne helfen, habe aber leider nicht einmal ansatzweise verstanden was Du da machst, warum Du es machst, und wie Du es machst. Bitte tu' Dir -- und uns -- den Gefallen und ordne bitte Deine Gedanken, formulier sie strukturiert und im Idealfall ohne große Rechtschreib- und Grammatikfehler, und gerne auch mit Beispielcode. Viel Erfolg!
Hallo, Ich hätte ne Frage, ich hab 2 Ideen weiss aber nicht was die bessere ist. Also ich hab den Raspberry Pi der als Server läuft (Apache2). Auf der Website sind 3 LEDs(Bilder) und 3 Button Heizung: Ein ;Aus ;Störung. Ich kann mit den drei Schalter die Heizung steuern. 1 Einmal einschalten , auschalten und die Heizung in den Dauermodus setzen. Die Heizung wird ansonsten per Temperaturfühler überwacht im Normalfall. Durch die Betätigung eines Schalters wird ein PHP - Script aufgerufen, der nur ein Python-script aufruft. Im Python-script wird die Heizung durch die GPIOs angesteuert. Das funktioniert auch alles wunderbar. So jetzt möchte ich aber noch wissen wie der aktuelle Betrieb der Heizung ist von der Website aus. Deswegen hab ich 3 LEDs als Bilder. -Die 1 LED zeigt graue LED (nicht eingeschaltet) oder grüne LED(eingeschaltet) durch Schalter Heizung an. -Die 2 LED zeigt graue LED (eingeschaltet) oder grüne LED (ausgeschaltet) durch den Schalter Heizung aus. -Die 3 LED zeigt graue LED (fehlerfrei) oder rote LED (Störung) an. So damit jetzt die Bilder je nach Zustand der Anlage gewechselt wird hätte ich 2 Lösungen. 1 Lösung: Ich rufe keine html-datei auf sondern eine php-datei. Dort wird mit Hilfe von Python und SQLite den Zustand ermittelt umd anschliessend wird die ganze Website per echo ... ausgegeben. 2 Lösung: Bevor die Website aufgerufen wird, wird erst der Zustand der Anlage ermittelt. In der Html-datei wird dann durch javascript Jquery durchgeführt. Verbindung zum Server geöffnet mit Rückgabewert. Anhand diesem Rückgabewert wird dann durch java... Bild1 oder 2 eingefügt. Was ist die bessere Variante? Oder gibt es noch was anderes.
Charel P. schrieb: > Also ich hab den Raspberry Pi der als Server läuft Charel P. schrieb: > Durch die > Betätigung eines Schalters wird ein PHP - Script aufgerufen, der nur ein > Python-script aufruft. Im Python-script wird die Heizung durch die GPIOs > angesteuert. damit WEISS der PI den Zustand der Heizung! Charel P. schrieb: > Bevor die Website aufgerufen wird, wird erst der Zustand der > Anlage ermittelt. wieso also? Der PI kann die Bilder austauschen oder man nutzt Checkbox und HTML
Jo aber der Zustand der Heizung kann sich verändern und die website wird 1 mal alle 5 minuten wieder aufgerufen.
mit <meta http-equiv="refresh" content="120"> im HTML Code aktualisiere ich alle 2 Minuten beim NETIO die Webseite LED on / off <td> <input type="checkbox" name="OUT" value="G" > PCres (PC6) </p> <p align="center"><input type="submit" name="SUB" value="Senden"></p> </td> <td> <p align="left"><img src="ledoff.gif" alt="" width="17" height="17"> PCres (PA1)</p> </td> z.B.
Moinsen! Ich mache sowas gerne mit Javascript und Ajax (gibt es recht einfach mit jqery). Hat den Vorteil, daß man nicht immer die Seite komplett neu laden muss,und deswegen 'straflos' etwas öfter nachfragen kann. Bin etwas in Eile, bei Interesse ggfs. später mehr... IdS, Baku
Baku M. schrieb: > Moinsen! > > Ich mache sowas gerne mit Javascript und Ajax (gibt es recht einfach mit > jqery). > Hat den Vorteil, daß man nicht immer die Seite komplett neu laden > muss,und deswegen 'straflos' etwas öfter nachfragen kann. > > Bin etwas in Eile, bei Interesse ggfs. später mehr... > > IdS, > Baku So würde ich das auch machen (y)
Baku M. schrieb: > Ich mache sowas gerne mit Javascript und Ajax (gibt es recht einfach mit > jqery). Ajax ja, jQuery nö. jQuery braucht man eigentlich nicht mehr, das aktuelle JavaScript kann genug: https://scotch.io/tutorials/how-to-use-the-javascript-fetch-api-to-get-data
Deinen Lösung funktioniert und ist in Ordnung, ich schlage hier aber nur ein paar Möglichkeiten vor, wie man es noch besser machen könnte. Die Einarbeitung dafür kann aber etwas Zeit in Anspruch nehmen. Warum gehst du dem Umweg über php und das Python Script. Du könntest ja auch den Webserver gleich mit Python realisieren und direkt auf die Datenbank zugreifen. Das mit dem Neuladen der Seite ist einfach, wenn du das aber häufiger machst, dann steigt die Wahrscheinlichkeit, dass die Seite beim Klick neu geladen wird und dein Klick nicht angenommen wird. Deshalb würde wir ich auch AJAX verwenden und nur die Daten abfragen und die Seite lokal im Browser aktualisieren. Wenn die Seite noch weiter wachsen soll, weil weiter Aktoren/Sensoren eingebunden werden, dann würde ich es aber nicht wie baku mit jquery machen, sondern lieber eine Framework verwenden. Ich verwenden mittlerweile React (https://reactjs.org/). Allerdings erfodert das ganze etwas Einarbeitung, gerade wenn man aus der Embedded Welt kommt. Dir Krönung wären dann websockets. In diesem Fall hältst du einen "Leitung" vom Browser zu deinem Server offen und der Server schickt deinem Browser ein Update, sobald sich ein Zustand ändert. Ich sage jetzt nicht, dass man das unbedingt soweit treiben muss, hängt davon ab, wann man fertig werden will und was man in Zukunft noch erweitern möchte.
Ich hab auch sowas gebaut, aber entkoppelt. Der Raspberry hängt an der Heizung, am Stromzähler usw und loggt alle 5 min seine Daten in eine Datenbank auf meinem V Server. Auf dem V Server läuft dann auch der Apache, der mittels PHP die aktuellen und kummulierten Werte aus der DB ausliest, die Homepage zusammen baut, Bilder tauscht, Text und Grafiken und die Bilder einbaut usw... Kannst du natürlich auch alles auf dem Raspi laufen lassen, wollte ich aber aus Sicherheitsgründen nicht.
Vielen dank für die kommentaren ich schaue mir die einzelne vorschläge an und was ich mit meinen Kenntnisse möglich ist. Vielen Dank
bla schrieb: > Baku M. schrieb: >>[...] > Ajax ja, jQuery nö. jQuery braucht man eigentlich nicht mehr, das > aktuelle JavaScript kann genug: > > https://scotch.io/tutorials/how-to-use-the-javascript-fetch-api-to-get-data Schau mal an, da hab ich wohl die Zeit verpennt :-) Das ist aber so ein typisches Verhalten (auch bei mir): Wenn etwas funktioniert, dann macht man das eben immer so. Besten Dank für den Hinweis sagt Baku
https://caniuse.com/#search=fetch naja, für eigene (private) projekte und seiten mit (hauptsächliche) technisch interessierter zielgruppe ja. allgemein nein, da die ie-unterstützung nicht ausreicht - das (hier unflätiges schimpfwort einsetzen) teil ist immer noch viel zu weit verbreitet (anteil > 0%)
der eine oder der andere schrieb: > https://caniuse.com/#search=fetch > > naja, für eigene (private) projekte und seiten mit (hauptsächliche) > technisch interessierter zielgruppe ja. > > allgemein nein, da die ie-unterstützung nicht ausreicht - das (hier > unflätiges schimpfwort einsetzen) teil ist immer noch viel zu weit > verbreitet (anteil > 0%) Wenn man diese Zielgruppe unbedingt braucht, dann verwendet man heutzutage einen Polyfill anstatt die ganze Seite nur deswegen mit Uralttechnik zu bauen. https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#Polyfill Den Polyfill schmeisst man dann bei gegebener Zeit (wenn auch der letzte sein ungepatchtes Windows von 2015 entsorgt hat) einfach raus.
Um für eine Statusänderung die Webseite neu auzurufen - das ist unprofessionell, denn das kann just in dem Moment passieren, indem du ein Kommando abschickst und dann ist der Status unklar: angekommen oder nicht? Also macht man die Kommandoebene (Buttons/Schalter) von der Statusebene (z.B. LEDs) unabhängig. Dies ist wiederum ist auf verschiedenen Wegen möglich. Hat das System Kontakt zum Internet, kann man Ajax/JQuery benutzen, um einzelne Objekte unabhängig vom Rest der Webseite zu aktualisieren. Kontakt zum Web spielt deshalb eine Rolle, weil man die dazu notwendigen Libs üblicherweise per Link (von Google) einbindet und nicht lokal vorrätig hält. Man kann auch etwas "selber basteln", z.B. mit iFrames und die Aktualisierung erfolgt per Javascript und Timer. WebSockets (auch Javascript) wären wohl auch möglich ...
Frank E. schrieb: > Kontakt zum Web spielt deshalb eine Rolle, weil man die dazu notwendigen > Libs üblicherweise per Link (von Google) einbindet und nicht lokal > vorrätig hält. Geht aber auch problemlos ohne Internet, wenn man jquery nicht vom Google CDN lädt, sondern vom Server ausliefern lässt. Da ja auch noch Bilder verwendet werden sollen, muss der Pi Server sowieso statische Dateien ausliefern.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.