Posts by nobody2311

    Danke für deine schnelle Antwort :thumbup:


    Der erste Punkt war nicht ernst gemeint ;)

    Ah okay, ich bin davon ausgegangen, dass ich etwas grundsätzlich falsch gemacht habe, wenn ich an den Kanälen 5-8 etwas messe, obwohl nix angeschlossen ist.. Okay, dann bin ich schon mal beruhigt :danke_ATDE:


    EDIT: Komisch ist aber auch (das hab ich im ersten Beitrag vergessen), dass der Kanal 2 immer -0.000016 bzw. -0.000000 anzeigt, während sich die anderen Werte bei Belastung der Wägezellen ändern.

    Hallo zusammen,


    ich kämpfe seit einigen Tagen mit einem Problem meines AD-Wandlers (ADC Differential Pi) und 4 Wägezellen (CZL601-50kg).


    Mithilfe dieses Python Skripts, lassen sich die Wägezellen auslesen:

    Damit erhalte ich auch folgende Daten:

    Code
    Channel 1: -0.000781
    Channel 2: -0.000016
    Channel 3: -0.000703
    Channel 4: -0.000234
    Channel 5: -0.000437
    Channel 6: -0.000437
    Channel 7: -0.000453
    Channel 8: -0.000422

    Jetzt gibt es nur zwei Probleme:

    1.) Ich hab so gut wie keine Erfahrung mit einem Analoge/Digital-Wandler :daumendreh2:

    2.) Ich hab nur 4 Wägezellen angeschlossen (Ch 1-4) :conf:

    EDIT: 3.) Kanal 2 zeigt immer den gleichen Wert an (-0.000016 bzw. -0.000000)



    Letzteres ist im Moment die größte Hürde... Ich würd mich freuen, wenn mir jemand einen kleinen schubs in die richtige Richtung geben könnte..

    Sehr sehr cool! Prinzip verstanden :D Damit kann man ja jetzt so ziemlich alles "ansprechen" und ändern. :thumbs1: Ich musste nur das hier hinzufügen, weil es sonst einen Zeilenumbruch gab:
    [code=php]<div id="chart1" style="[.. .]"><span style="white-space: nowrap;"></span>%</div>[/php]


    Dann ist mir noch aufgefallen, dass die Div-Breite immer mindestens so groß ist, wie eben die Zahl, die darin enthalten ist - bei 10% und 40% war dann der Unterschied nicht so gewaltig ;) . In deinem Code hab ich dann alles von [font="Courier New"]px[/font] auf [font="Courier New"]%[/font] geändert und außen noch einen Div gesetzt mit einer fixen Breite von [font="Courier New"]200px[/font]. Mit [font="Courier New"]text-shadow[/font] hab ich zum Schluss den Text etwas lesbarer gemacht..


    Der Code sieht jetzt so aus:
    [code=php]<td colspan="2"><div style="width: 200px"><div id="chart1" style="background-color:#04B404; padding: 0px 0px 0px 5px; margin:0px; width: 10px; display: inherit; color:white; font-weight: bold; text-shadow: 0 0 5px black;"><span style="white-space: nowrap;"></span>%</div></div></td>
    [..]
    <script type="text/javascript">
    $(document).ready(function () {
    setInterval(function () {
    $('#line1').load('../dect_line1.txt');
    $('#line1a').load('../dect_line1a.txt');
    $('#line2').load('../dect_line2.txt');
    $('#line3 span').load('http://192.168.178.45/dect_line3.txt');
    $('#line3').css({'width': $('#line3 span').html().trim() + '%'});
    $('#line4 span').load('http://192.168.178.45/dect_line4.txt');
    $('#line4').css({'width': $('#line4 span').html().trim() + '%'});
    $('#line5 span').load('http://192.168.178.45/dect_line5.txt');
    $('#line5').css({'width': $('#line5 span').html().trim() + '%'});
    $('#chart1 span').load('http://192.168.178.45/ups-status2.txt');
    $('#chart1').css({'width': $('#chart1 span').html().trim() + '%'});
    $('#chart2 span').load('http://192.168.178.45/ups-status1.txt');
    $('#chart2').css({'width': $('#chart2 span').html().trim() + '%'});
    $('#chart3 span').load('http://192.168.178.45/ups-status3.txt');
    $('#chart3').css({'width': $('#chart3 span').html().trim() + '%'});
    }, 5000);
    });
    </script>
    [/php]


    ..und hier das Ergebnis im Browser am PC:

    Ich glaube, das kann sich sehen lassen ;) ohne deine Hilfe, aber fast unmöglich :danke_ATDE: :danke_ATDE: :danke_ATDE:

    Quote from &quot;linusg&quot; pid='298198' dateline='1504442185'


    Aber bitte, bitte pack das doch alles in ein <script> tag und einen document ready event handler und ein setInterval!


    Oh, ja natürlich.. Daran hab ich nicht gedacht :blush:


    Quote from &quot;linusg&quot; pid='298198' dateline='1504442185'


    Kurz und gut: der Fehler war wohl ein Linebreak am Ende von $('#chartX').html(), erkennbar an der Ausgabe in der Konsole


    Ah verstehe, das macht Sinn.. Die Textdateien werden in meinem Fall in etwa so erstellt

    Code
    BEFEHL | grep "beispiel" > /pfad/file.log


    Der Code hier funktioniert einwandfrei :thumbs1:

    Quote from &quot;linusg&quot; pid='298198' dateline='1504442185'



    Ja, eine letzte Frage hab ich schon noch, vor allem, weil ich gerne auf Dauer was lernen möchte :D
    Renão schrieb: "Dieses zusätzlich trim funktioniert, ist aber insgesamt ziemlich hässlich"


    Wenn ich mal von hier zitiere (https://www.w3schools.com/JSREF/jsref_trim_string.asp), steht dort
    [font="Verdana, sans-serif"]

    Quote

    The trim() method removes whitespace from both sides of a string.[/font]

    Quote

    Quote


    [font="Verdana, sans-serif"]Note: The trim() method does not change the original string.[font="Verdana, sans-serif"]

    [/font][/font]
    Klingt für mich als Laie eigentlich nicht schlecht, oder?


    EDIT: Das lässt sich jetzt nur noch übertreffen, wenn ich den Text zwischen den div-Tags "beeinflussen" könnte und sich z.B. [font="Courier New"]%[/font], [font="Courier New"]°C[/font], o.ä. hinzufügen lassen.
    [code=php]<div id="chart1" style="[..] width: 100px;">100%</div>[/php]

    Quote from &quot;linusg&quot; pid='298123' dateline='1504386069'


    Ok, ich glaube, du hast uns da mit den verschiedenen IDs verwirrt, die am Ende alle das gleiche Element sein sollen :)


    Ich hoff mir unterstellt niemand böse Absicht :D :D Ein Tutorial werd ich mir dazu definitiv mal ansehen ;)


    Irgendwie klappt das aber trotzdem noch nicht so recht :s Hab zusätzlich mal ein Screenshot angehängt


    [code=php] <tr>
    <td>USV-Akku: </td>
    <td><div id="chart1" style="background-color:orange; border:0px solid red; padding:0px; margin:0px; height: 10px; width: 10px;"></div></td>
    </tr>
    <tr>
    <td>USV-Auslastung: </td>
    <td><div id="chart2" style="background-color:orange; border:0px solid red; padding:0px; margin:0px; height: 10px; width: 10px;"></div></td>
    </tr>
    <tr>
    <td>USV-Zeit: </td>
    <td><div id="chart3" style="background-color:orange; border:0px solid red; padding:0px; margin:0px; height: 10px; width: 10px;"></div></td>
    </tr>
    </table>
    </div>


    <script type="text/javascript">
    $(document).ready(function () {
    setInterval(function () {
    $('#chart1').load('http://192.168.178.45/ups-status20.txt');
    $('#chart1').css({'width': $('#chart1').html() + 'px'});
    }, 5000);
    });
    </script>


    <script type="text/javascript">
    $(document).ready(function () {
    setInterval(function () {
    $('#chart2').load('http://192.168.178.45/ups-status10.txt');
    $('#chart2').css({'width': $('#chart2').html() + 'px'});
    }, 5000);
    });
    </script>


    <script type="text/javascript">
    $(document).ready(function () {
    setInterval(function () {
    $('#chart3').load('http://192.168.178.45/ups-status30.txt');
    $('#chart3').css({'width': $('#chart3').html() + 'px'});
    }, 5000);
    });
    </script>
    [/php]


    Wird wohl langsam spät.. Nachdem ich die kurze Panikattacke überstanden hab, hier der Code in zwei "Varianten":


    Mit diesem Code wird zum einen die Zahl angezeigt, aber auch im Browser (Opera->Element Untersuchungen->Network), dass die Datei [font="Courier New"]ups-status20.txt[/font] geladen wurde - zwar aus dem Cache, aber sie hat sich nicht verändert, weil ich zum testen einen festen Wert in eine andere Datei eingetragen hab:

    • [font="Courier New"]ups-status2.txt[/font] = original; Inhalt = [font="Courier New"]100%[/font]
    • [font="Courier New"]ups-status20.txt[/font] = testen; Inhalt = [font="Courier New"]100[/font]
    • beide im gleichen Verzeichnis [font="Courier New"]/var/www/html[/font]


    [code=php]<div id="chart1" style="background-color:orange; border:0px solid red; padding:0px; margin:0px; height: 10px; width: 10px;"></div></td>
    [..]
    <script type="text/javascript">
    $(document).ready(function () {
    setInterval(function () {
    $('#chart1').load('http://192.168.178.45/ups-status20.txt');
    $('#usvchart1').css({'width': $('#chart1').html() + 'px'});
    }, 5000);
    });
    </script>
    [..]
    [/php]


    Und mit dem Code wird weder die Zahl angezeigt, noch die Datei überhaupt geladen.. :s
    [code=php]<div id="usvchart1" style="background-color:orange; border:0px solid red; padding:0px; margin:0px; height: 10px; width: 10px;"></div></td>
    [..]
    <script type="text/javascript">
    $(document).ready(function () {
    setInterval(function () {
    $('#chart1').load('http://192.168.178.45/ups-status20.txt');
    $('#usvchart1').css({'width': $('#chart1').html() + 'px'});
    }, 5000);
    });
    </script>
    [..]
    [/php]


    EDIT: In beiden Fällen bleibt die div Breite bei 10px

    Quote from &quot;linusg&quot; pid='298101' dateline='1504379257'


    Ist das tatsächlich der Fall, also erscheint eine Zahl?


    Nachdem Renão den Hinweis mit der URI gab, hab ich den Pfad angepasst und zumindest wird nun eine Zahl angezeigt. Lustigerweise war das in meinen bisherigen Code-Blöcken nicht ersichtlich, sorry :daumendreh2: . Ich hatte ursprünglich [font="Courier New"]192.168.178.45/pfad/zu/ups-status1.txt [/font]und hab es nun geändert auf [font="Courier New"]http://192.168.178.45/pfad/zu/ups-status1.txt[/font]. Jetzt wird eine Zahl angezeigt, aber die Breite bleibt unverändert und im Debugger (vom Browser) sieht das in HTML so aus:
    [code=php]<div id="chart1" style="background-color:orange; border:0px solid red; padding:0px; margin:0px; height: 10px; width: 10px;">100</div>[/php]



    Quote from &quot;Renão&quot; pid='298105' dateline='1504379775'


    Hm, wie wird die Seite denn aufgerufen?


    Ja, es ist ein nginx Webserver am arbeiten mit Glancr in einer VM und über einen Raspberry Pi wird dann der Midori-Browser im Vollbild-/Kioskmodus gestartet. ...und für deinen Tipp mit der URI :thumbs1: (siehe oben ^^)



    EDIT:
    Was macht eigentlich der rote Teil in dieser Zeile:
    [font="Courier New"]$('#usvchart1').css({'width': $('#chart1').html() + 'px'});[/font]
    Sieht für mich als Laie wie eine ID aus, die aber bisher nicht vergeben ist :s

    zu 1.) Ja, jQuery ist noch drin, weil andere Module das nutzen (SmartMirror basiert auf Glancr)


    zu 2.) Ja, wir kommen tatsächlich näher :D Ich hab die IDs angepasst, weil ich zuerst dachte, dass die letzte Zeile im setInterval so interpretiert wird:

    Code
    $('#AUSZUWÄHLENDES-ELEMENT-ID').css({'WAS-WIRD-GEÄNDERT': $('#WERT-AUS-DER-DATEI').html() + 'px'});


    Das hier hab geändert.. (ausnahmsweise nicht im Code-Block ;) )
    [font="Courier New"][...][/font]
    [font="Courier New"]<div id="usvchart1" style="background-color:orange; border:0px solid red; padding:0px; margin:0px; height: 10px; width: 10px;"></div>[/font]
    [font="Courier New"][...][/font]
    [font="Courier New"]<script type="text/javascript">[/font]
    [font="Courier New"] $(document).ready(function () {[/font]
    [font="Courier New"] setInterval(function () {[/font]
    [font="Courier New"] $('#line1').load('/pfad/zu/ups-status1.txt');[/font]
    [font="Courier New"] $('#usvchart1').css({'width': $('#line1').html() + 'px'});[/font]
    [font="Courier New"] }, 5000);[/font]
    [font="Courier New"] });[/font]
    [font="Courier New"]</script>[/font]


    Ich hab nun den Code geändert und er sieht jetzt so aus:
    [code=php][...]
    <div id="chart1" style="background-color:orange; border:0px solid red; padding:0px; margin:0px; height: 10px; width: 10px;"></div>
    [...]
    <script type="text/javascript">
    $(document).ready(function () {
    setInterval(function () {
    $('#chart1').load('/pfad/zu/ups-status1.txt');
    $('#usvchart1').css({'width': $('#chart1').html() + 'px'});
    alert($('#chart1').html() + 'px');
    alert($('#chart1'));
    }, 5000);
    });
    </script> [/php]


    Damit bekomm ich jetzt als Popup den Inhalt [font="Courier New"]px[/font] (..auch im 5 Sekunden-Takt nach wegklicken)



    zu 3.) nach dem verbessern bekomm ich ein [font="Courier New"][object Object][/font] nach dem [font="Courier New"]px[/font] und wieder alle 5-Sek. nach wegklicken

    Danke für eure schnellen Antworten ;)


    Quote from &quot;Renão&quot; pid='297981' dateline='1504299686'


    Du setzt width auf einen String value, ergo keinen gültigen Wert - oder verstehe ich das hier falsch?

    Code
    usvchart1.style.width = "#line1" + "px";
    // result: usvchart1.style.width = "#line1px";


    Okay, jetzt wo du es erwähnst.. Da hätte ich (unabhängig vom rest) erst einer Variablen den Wert der txt-Datei zuweisen sollen..


    Quote from &quot;linusg&quot; pid='297995' dateline='1504303915'


    1) Warum mischst du jQuery und vanilla JS? Wenn es geht, lass jQuery doch weg oder mach halt alles mit der $("selector") Syntax ;)
    2) AJAX/AJAJ mit relativen Pfaden? Das wird nicht gehen... Du brauchst den Pfad absolut mit oder ohne domain (example.com/meine/datei.txt oder /meine/datei.txt oder meine/datei.txt)
    3) Die Zeile document.getElementById('usvchart1'); ist ohne Funktion. Denke du wolltest eine Zuweisung (usvchart1 = document.getElementById(...);)
    4) Wie schon angemerkt, mit usvchart1.style.width = "#line1" + "px"; wird das nix.


    1) Oh, als Anfänger sind mir die Unterschiede nicht immer auf Anhieb ersichtlich :blush: Ich tendiere aber eher in Richtung VanillaJS und lass dann jQuery weg
    2) Ah okay, wusste ich vorher nicht
    3) :thumbs1:
    4) :thumbs1:


    Ich hab mich mal mit dem Code aus deinem Beispiel beschäftigt und trotz allem will das nicht funktionieren. :s Könnte es vielleicht daran liegen, dass der Wert aus der txt-Datei nicht als Zahl interpretiert wird? Wenn ich die Datei mit vi öffne, ist wirklich nur die Zahl z.B. 28 in der Datei...

    Hallo zusammen,


    ich möchte für meinen "MagicMirror" ein paar Daten nicht nur als "Zahl" angezeigt bekommen, sondern über einen horizontalen Balken optisch ein wenig hervorheben.


    Das ist eine Zeile, die einen Wert (z.B. 28) aus der Datei "ups-status1.txt" alle 5 Sekunden abfragt und darstellt:
    [code=php]
    [...]
    <span id="line1"> </span>
    [...]
    <script type="text/javascript">
    $(document).ready(function() {
    setInterval( function(){
    $('#line1').load('../ups-status1.txt');
    }, 5000);
    });
    </script>
    [...][/php]


    Meine Idee wäre jetzt, das ganze einfach und schnell über ein farbiges DIV mit variabler Breite:
    [code=php]
    [...]
    <div id="usvchart1" style="background-color:orange; border:0px solid red; padding:0px; margin:0px; height: 10px; width: 10px;"></div>
    [...]
    <script type="text/javascript">
    $(document).ready(function() {
    setInterval( function(){
    $('#line1').load('../ups-status1.txt');
    document.getElementById('usvchart1');
    usvchart1.style.width = "#line1" + "px";
    }, 5000);
    });
    </script>
    [/php]


    Normalerweise ist meistens der debugger mein Hinweisgeber, diesmal liefert er mir keine Fehler :s
    Nach unzähligen Versuchen/Änderungen bin ich nun ratlos und hoffe, ihr habt den entscheidenden Tipp für mich :D

    Die Werte (1s und 1V) waren aus dem Bauch heraus, weil "Sorry, aber mit Kondensatoren kenn ich mich nicht aus." :D Aber wenn ich mal an die Zeit mit Subwoofer im Auto zurück denke, dann waren doch dort 1F "Standard", oder? Im Nachhinein sind dann wohl 0,5F für einen Pi Zero etwas übertrieben :lol:


    Du meintest ja, dass damit die hohen Rippelströme verhindert werden sollen.
    Diese Elkos hätte ich noch hier rumliegen:
    2x 10V 2200uF
    2x 16V 22uF
    2x 25V 4,7uF
    4x 25V 330uF
    4x 63V 4,7uF
    2x 450V 4,7uF
    Ich würde mal schätzen, dass sich die grünen dafür eigenen würden und mehrere parallel oder in Reihe?

    Achja okay und welche Kapazität/Menge sollte ich mindestens nehmen? :s Sorry, aber mit Kondensatoren kenn ich mich nicht aus..


    EDIT: Hab jetzt im Netz eine Formel gefunden, die hoffentlich passt..


    (mA*s)/V=C


    z.B. Wenn ich die Stromversorgung für 1s aufrechterhalten möchte und ein Spannungsabfall von 1V verkraftbar wäre:
    (500mA*1s)/1V=500mF


    soweit richtig?

    Quote from &quot;fred0815&quot; pid='295397' dateline='1502780640'


    Zur Not mal ein Oszi nehmen und gucken was mit oder ohne Elkos passiert ;)


    Damit kann ich leider nicht dienen :blush:


    Also das heißt ich muss für die richtigen Elkos nur auf die Spannung achten und die Kapazität ist wirklich egal?

    Okay, ich hab mich etwas zu Rippleströmen eingelesen, sofern der Wikipedia-Eintrag richtig ist https://de.wikipedia.org/wiki/Rippelstrom und der Thread aus einem anderen Forum passend ist https://www.mikrocontroller.net/topic/307537.


    So wie ich das Verstanden hab, müsste ein/mehrere Low-ESR-Elkos in die +Leitung zwischen Laderegler und dem Stepdown bzw. Raspberry Pi. Wenn ich mir jetzt in dem Thread diesem Link folge ELKOS-SMD-Low-ESR und mit dem Stepdown vergleiche, sieht es für mich als Laie so aus, als wenn dort schon einer bzw. zwei verbaut ist? (silber, zylinderartige Form)


    Quote from &quot;fred0815&quot; pid='295287' dateline='1502702140'


    Was passiert mit den Einstellungen der Zeitschaltuhr, wenn der Akku leer ist ?


    Die Einstellungen bleiben (nachdem ich die Zeitschaltuhr in Betrieb genommen hab) erhalten. Laut Anleitung ist eine Lithium Batterie verbaut die (laut Hersteller) 3 Jahre durchhalten soll.


    Quote from &quot;raspiprojekt&quot; pid='295313' dateline='1502716671'


    Ich hatte ein ähnliches Problem (ohne Bienen). Dabei war die Stromversorgung der Zeitschaltuhr die Herausforderung, Die hatte 7W im Standby geschluckt.


    Ich hab mal nachgemessen und mein Multimeter sagt 0,017A bzw. 17mA (Bei 12,77V wären das 0,2W an Eigenverbrauch) und wäre somit in Ordnung ;)


    Quote from &quot;RonS&quot; pid='295338' dateline='1502726453'


    noch n Tip zu den standart Solar Ladereglern die es so gibt diese arbeiten mit PWM also impulsladung diese Impulese hat du immer auf der Batterie und ich glaub nicht das man die irgendwie wegbekommt das würde bedeuten das die schaltung nur nachts zu benutzen ist


    Achso, das wusste ich nicht. Somit kann ich keine Geräte an den Akku anschließen, wenn er durch die Solarzellen geladen wird?

    Achso ja, die ist dafür da, um nach einem Shutdown den Pi wieder hochfahren zu lassen.


    Die Reihenfolge wäre in etwa so:
    10:00 Einschalten durch Zeitschaltuhr
    10:10 Werte übermitteln
    10:30 Shutdown (über Skript)
    10:45 Stromversorgung trennen über Zeitschaltuhr


    18:00 Einschalten durch Zeitschaltuhr
    18:10 Werte übermitteln
    18:30 Shutdown (über Skript)
    18:45 Stromversorgung trennen über Zeitschaltuhr