Ankündigung

Einklappen
Keine Ankündigung bisher.

EDOMI - LBS - Diskussion

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • coliflower
    antwortet
    Dankeschön, das wars !
    (obwohl ich schwören könnte dass ich das schon probiert habe ABER na ja, anscheinend nicht ganz so ;-)

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von coliflower Beitrag anzeigen
    Ne, ich möchte nur ins Trace-Log etwas schreiben um zu loggen …
    Uhm... einfach ein:
    PHP-Code:
    writeToTraceLog(0,true,'iTunes RM | A10 | LS01 output = '.$output['LS1']); 

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Nochmal: Ausgänge gibt es nicht wirklich. Wenn Du einen Ausgang auf einen Wert setzt, werden alle EINGÄNGE (anderer Logikbausteine), die mit diesem Ausgang verbunden sind auf den Wert gesetzt.
    Das habe ich schon verstanden ...

    Deshalb meine Frage ob ich den Wert z.B. 0 von LS1=0 im LBS (die dann den LBS-Ausgang zugeführt wird) auslesen kann ?

    Welche Variable soll ich loggen, die $E ? Die ist immer 1 ABER der LS1 kann ja nach Zustand eine 0 oder 1 haben ...

    Ich suche NUR nach einer Möglichkeit den Wert zwischen 0 und 100 IN das Trace-Log zu schreiben ...
    Oder geht das auch nicht ….?

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Nochmal: Ausgänge gibt es nicht wirklich. Wenn Du einen Ausgang auf einen Wert setzt, werden alle EINGÄNGE (anderer Logikbausteine), die mit diesem Ausgang verbunden sind auf den Wert gesetzt.

    Wenn Du diesen Wert Loggen willst, musst Du einfach die Variable loggen, deren Wert Du auf den Ausgang gegeben hast.

    Einen Kommentar schreiben:


  • coliflower
    antwortet


    Ne, ich möchte nur ins Trace-Log etwas schreiben um zu loggen …

    Der LBS funktioniert in diesem Bereich wie er soll - einzig und alleine fehlt mir das Wissen wie ich die Werte die an den Ausgängen des LBS anliegen auch ins Trace-Log schreiben kann ...

    Anstatt der ??? im Beispiel ('LS1=1&LS2=1&LS3=0') soll die 1 oder in anderer Konstellation die 0 stehen da LS1 entweder 0 oder 1 haben kann (Lautsprecher AN oder AUS) … LS1=1 oder LS1=0

    AUS >> writeToTraceLog(0,true,'iTunes RM | A10 | LS01 output = '.???);
    Soll DAS werden >> 2016-02-16 20:05:44 296828 EXEC 13818 iTunes RM | A19 | LS10 output = ???

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von coliflower Beitrag anzeigen
    Danke für deine Geduld :-)
    Ich danke eher fuer Deine

    Zitat von coliflower Beitrag anzeigen
    Ich versuche etwas auszuholen ...
    Also hast Du einen String vom Mac, der diese LSx=y Paare enthaelt. Du willst jetzt y auf Ausgang z legen und ins trace schreiben, dass LSx im String war (lapidar gesprochen).
    Und falls ein bestimmtest LSi im String nicht auftaucht, dann willst du ins trace schreiben, dass es nicht dabei war? Wozu?
    Und der zu i gehoerende Ausgangs soll dann auf NULL gesetzt werden? Oder ist das nicht noetig?

    BTW: wenn die Ausgaenge linear den LS-Indizes zugeordnet sind, laesst sich das programmtechnisch deutlich einfacher abbilden, also zB
    LS1 => Ausgang 10
    LS2 => Ausgang 11
    LSn => Ausgang (9+n)

    Nicht aufgeben, wir schaffen das

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Danke für deine Geduld :-)

    Ich versuche etwas auszuholen ...

    Mein Mac schickt mit per ECHO einen String … 'LS1=1&LS2=1&LS3=0'

    Dieser String wird via UDP-Listener im LBS entgegengenommen und danach geparst ...

    parse_str($data, $output);

    Danach wird abgefragt ob z.B. LS1 enthalten ist (im Array), wenn ja dann weiter ...

    if (array_key_exists('LS1', $output)) {
    setLogicLinkAusgang($id,10,$output['LS1']);
    writeToTraceLog(0,true,'iTunes RM | A10 | LS01 exists = '.array_key_exists('LS1',$output));
    writeToTraceLog(0,true,'iTunes RM | A10 | LS01 output = '.???;
    }

    Wenn Ja, dann soll der Wert/Inhalt von LS1, im Beispiel die 1 den Ausgang 10 zugeführt werden.

    Und genau diese 1 möchte ich im Trace-Log loggen (im grafischen Logikeditor sehe ich die 1 am Ausgang).

    2016-02-16 20:05:44 296796 EXEC 13818 iTunes RM | A19 | LS10 exists = 1 Ok
    2016-02-16 20:05:44 296828 EXEC 13818 iTunes RM | A19 | LS10 output = ???

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von coliflower Beitrag anzeigen
    Nicht ganz …
    Der String wird im LBS geparst und die Einzelwerten den jeweiligen Ausgängen zugeführt - die Werte sind OK …
    ABER, ich würde diese Werte 0/1 gerne als solche in Trace-Log visualisieren ...
    Sorry, ich steh irgendwie aufm Schlauch
    Also Du hast einen String (nennen wir ihn $string), in dem zB drinsteht: "LS5=3&LS19=12&foobar&LS0=88". Jetzt moechtest Du alle Wertepaare haben, die dem Muster LS<nummer>=<integer> entsprechen - und zwar nur die? Hab ich das richtig verstanden?
    Das geht zB so:
    PHP-Code:
    $string="LS5=3&LS19=12&foobar&LS0=88";
    preg_match_all('/(LS\d+)=(\d+)/',$string,$matches);
    $i=0;
    foreach(
    $matches[1] as $match) {
        print 
    $match."=".$matches[2][$i++]."\n";

    Erzeugt dann folgende Ausgabe:
    Code:
    $ php test.php
    LS5=3
    LS19=12
    LS0=88
    Meinst Du sowas?

    Edit: wenn Du die Werte nicht weiterverarbeiten, sondern nur die Wertepaare ausgeben willst, dann reicht auch folgendes foreach-Konstrukt:
    PHP-Code:
    foreach($matches[0] as $match) {
       print 
    $match."\n";

    Zuletzt geändert von wintermute; 16.02.2016, 19:51.

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Nicht ganz …
    Der String wird im LBS geparst und die Einzelwerten den jeweiligen Ausgängen zugeführt - die Werte sind OK …
    ABER, ich würde diese Werte 0/1 gerne als solche in Trace-Log visualisieren ...

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von coliflower Beitrag anzeigen
    Derzeit wird ja nur ein 1 ausgegeben wenn LS1 im String enthalten ist, z.b. 'LS1=1&LS2=0&LS3=1&….‘
    Ich würde gerne die Werte der jeweiligen LSx sehen.
    Ahso... dann schreib am besten (ueberall) statt 'LS1'
    PHP-Code:
    'LS'.$i 
    Und pack um das ganze Konstrukt eine for-Schleife die von 1 bis "wohinauchimmer" zaehlt.

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Derzeit wird ja nur ein 1 ausgegeben wenn LS1 im String enthalten ist, z.b. 'LS1=1&LS2=0&LS3=1&….‘
    Ich würde gerne die Werte der jeweiligen LSx sehen.

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von coliflower Beitrag anzeigen
    Wie kann ich den Wert 0 oder 1 hinter „LS1“ in Trace-Log anzeigen lassen ?
    Ich versteh grad nicht... meinst Du, dass in dieser Zeile
    PHP-Code:
    writeToTraceLog(0,true,'iTunes RM | A10 | LS01 exists = '.array_key_exists('LS1',$output)); 
    je nach Wert von Deinem array_key_exists() 0 oder 1 (oder "Yes" oder "No") ausgegeben wird? Oder wo genau?

    gruesse :: Michael

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Nein - Ausgänge existieren nicht wirklich ...
    Wie kann ich den Wert 0 oder 1 hinter „LS1“ in Trace-Log anzeigen lassen ?

    BITTE/DANKE !


    PHP-Code:
    if (array_key_exists('LS1',    $output)) {
        
    setLogicLinkAusgang($id,10,$output['LS1']);
        
    writeToTraceLog(0,true,'iTunes RM | A10 | LS01 exists = '.array_key_exists('LS1',$output));
        
    writeToTraceLog(0,true,'iTunes RM | A10 | LS01 output = '.$E[10]['value']);

    Einen Kommentar schreiben:


  • Robby
    antwortet
    Zitat von AScherff Beitrag anzeigen
    Der o.g. Fehler führte dazu, dass der LBS nicht in den DL-Bereich gestellt wurde, nicht, dass er "Fehlerhaft" eingestellt wurde.
    Wollte nur nochmal berichten. Baustein nochmal heruntergeladen nach dem Fehler im Downloadbereich. Der Wetterbaustein funktioniert jetzt ohne Probleme.

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Scherz, sorry

    Einen Kommentar schreiben:

Lädt...
X