Ankündigung

Einklappen
Keine Ankündigung bisher.

EDOMI - LBS - Diskussion

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

  • rdeckard
    antwortet
    So, jetzt wollte ich auch mal meinen ersten LBS erstellen. Ich habe den EXEC-Teil bereits komplett in einem externen PHP zum Laufen gebracht. Also gehts nur noch darum, es ins Edomi-Gerüst zu integrieren.

    Beim ersten Versuch passierte nicht viel (ausser 2 Fehler im Edomi-Log). Also dachte ich mir, ich fange lieber mal Schritt für Schritt an. Also habe ich das Grundgerüst aus der Edomi-Anleitung genommen. Und tja...ich bekomm nicht mal das zum Laufen.

    Hier der Code des LBS:

    Code:
    ###[DEF]###
    [name        =Test]
    
    [e#1    =eingang 1]
    [e#2    =trigger]
    [e#3    =eingang 3 #init=1]
    
    [a#1    =ausgang 1]
    [a#2    =ausgang 2]
    
    ###[/DEF]###
    
    ###[HELP]###
    folgt noch...            
        
      
    ###[/HELP]###
    
    
    ###[LBS]###
    <?
    function LB_LBSID($id) {
      if ($E=getLogicEingangDataAll($id)) {
        if (getLogicElementStatus($id)==0) {
          //LBS läuft nicht?
          if ($E[1]['value']!=0 && $E[1]['refresh']==1) {
            setLogicElementStatus($id,1); //LBS "starten"
            callLogicFunctionExec(LBSID,$id); //EXEC-Script starten
          }
        }
      }
    }
    ?>
    ###[/LBS]###
    
    
    ###[EXEC]###
    <?
    require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
    sql_connect();
    //-------------------------------------------------------------------------------------
    writeToTraceLog(0,true,"Im Exec-Teil");
    
    if ($E=getLogicEingangDataAll($id)) {
        $A = $E[1]['value'];
        $eingang3 = $E[3]['value'];
    }
      writeToTraceLog(0,true,"Eingang3: ".$eingang3);
      writeToTraceLog(0,true,"Eingang1: ".$A);
     
     
      setLogicLinkAusgang($id,1,1);
      setLogicLinkAusgang($id,2,"22.03.2016");
    
    setLogicElementStatus($id,0);
     
    //-------------------------------------------------------------------------------------
    sql_disconnect();
    
    ?>
    ###[/EXEC]###
    Die Datei heisst (temporär) 19000900_lbs.php und liegt im Verzeichnis /usr/local/edomi/www/admin/lbs
    Danach habe ich in der Edomi Verwaltung Logikbausteine importieren angeklickt (es kommt kein Fehler) und danach im Logikeditor eine Testseite erstellt.

    Der LBS ist aktiviert und danach habe ich das Projekt neu aktiviert.
    Wenn ich nun in den Logikeditor zurückkehre und die Livewerte anzeigen möchte, sehe ich nur das folgende:



    D.h. links im Baustein sind nur die Werte, die ich hier fix eingetragen habe, aber im Ausgang wird nichts angezeigt.

    Im Code habe ich aber die 2 Ausgange fix mit Werten zugewiesen:
    PHP-Code:
    setLogicLinkAusgang($id,1,1);
    setLogicLinkAusgang($id,2,"22.03.2016"); 
    Was ich auch komisch finde...es wird kein TraceLog erzeugt bzw. ich habe keine Einträge drin:
    PHP-Code:
    writeToTraceLog(0,true,"Eingang3: ".$eingang3);
    writeToTraceLog(0,true,"Eingang1: ".$A); 


    Für mich sieht es also so aus, als ob der EXEC-Teil gar nicht ausgeführt wird.

    Was mache ich falsch?

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von coliflower Beitrag anzeigen
    Welchen Vorteil hat die obere „Konstellation“ mit „? true : false“ ggü. meiner einfachen Abfrage ?
    Und welche Bedeutung hat das „+0“ in True-Bereich und die „0“ in False-Bereich ?
    Das sieht aus, als wäre es von mir

    Alte Gewohnheit - um $port in jedem Fall in einen numerischen, skalaren Kontext zu zwingen (macht man in php vermutlich nicht immer so).
    Im Prinzip kannste dir das aber auch alles sparen und einfach ein:
    PHP-Code:
    $port+=0
    verwenden, dann ist das Ergebnis auch numerisch. Dann wird naemlich:
    "foo" zu "0",
    "123.4" zu "123.4",
    "89bar" zu "89" und
    "13.5E-2xyz" zu "0.135"

    Sinnvoller waere es zu prüfen, ob das Ergebnis davon ein Integer, groesser 0 und kleiner 65535 ist.

    Schlussendlich wird Edomi das vermutlich eh alles abfangen, aber deswegen sollte man ja nicht faul werden und absichtlich schlecht programmieren

    gruesse :: Michael

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Hallo zusammen,

    mit folgender Funktion kann ich ja prüfen ob eine Variable eine Numerisch ist ...

    $v = is_numeric ('5863527282178') ? true : false;

    z.B.:
    PHP-Code:
    $port=is_numeric($E[3]['value']) ? $E[3]['value']+0



    Ich verwende „nur“ folgenden Code um zu prüfen ob die Bedingung (IP-Port) erfüllt ist:
    PHP-Code:
    if (is_numeric($E[32]['value']) !== false) { 


    Welchen Vorteil hat die obere „Konstellation“ mit „? true : false“ ggü. meiner einfachen Abfrage ?
    Und welche Bedeutung hat das „+0“ in True-Bereich und die „0“ in False-Bereich ?

    DANKE vorab

    Einen Kommentar schreiben:


  • timberland
    antwortet
    Wenn du ihn benötigst kannst den gerne haben, kommst sowieso demnächst in den Downloadbereich.

    Muell.png

    Einen Kommentar schreiben:


  • ggt
    antwortet
    @WagoKlemme
    Danke für deine Idee

    @timberland
    Danke, ich habe jetzt auch LBS für den HS auf (d)einer Homepage entdeckt

    Einen Kommentar schreiben:


  • timberland
    antwortet
    Hi,

    ich lade mit zwei txt files vom Webserver.

    Einmal für den Status:
    # 1=Bio Tonne 2=Restmüll 3=Papiertonne 4=gelber Sack 5=Sonstige
    01.01 |-|-|3|4|-|
    06.03 |-|2|-|-|-|
    08.04 |1|-|-|-|5|

    und einmal für den nächsten Termin als Datum.
    # 1=Bio Tonne 2=Restmüll 3=Papiertonne 4=gelber Sack 5=Sonstige
    01.01 |-|01.02.2016 Dienstag|-|29.04.2016 Donnerstag|-|
    01.02 |08.03.2016 Mittwoch|04.03.2016 Dienstag|-|-|-|

    Die Txt Files muss man halt selber Erstellen.

    Über einen Uhrzeitauslöser lasse ich mir dann Email und Prowl Nachricht schicken.

    Einen Kommentar schreiben:


  • WagoKlemme
    antwortet
    Ich habe das so für mich gelöst:

    Code:
    <!DOCTYPE html>
    <!--
    To change this license header, choose License Headers in Project Properties.
    To change this template file, choose Tools | Templates
    and open the template in the editor.
    -->
    <html lang="de">
        <head>
        <meta charset="UTF-8">
        <title></title>
        </head>
        <body>
            <?php
    <------>$size = '14px';
    <------>$color = '#ffffff';
    <------>$familiy = '';
    <------>
    <------>echo "<tr><td height=\"10\"></td></tr>";
    <------>echo "<tr><td style=\"font-size:";$size;"; font-family:";$family;"; color:";$color;";\"><b></b></td></tr>";
    <------>echo "<tr><td height=\"10\"></td></tr>";.
    <------>echo "<body style=\"background-color: #414241; \">";.
    <------>echo "<font color=\"#ffffff\">";
    <------>
    <------>$f = fopen("Muell.txt", "r");
    <------>if ($f)  {
    <------>    $today = strtotime("today");
    <------>    while(!feof($f)) {
    <------><------>$buffer = fgets($f);
    <------><------>$dateliste = strtotime(substr($buffer,0,10));
    <------><------>If($today < $dateliste)  {
    <------><------>    echo substr($buffer,0,200) . "<br />";
    <------><------>}
    <------>    }
    <------>}
    <------>echo "</font>";
    <------>fclose($f);
    
    <------>?>
        </body>
    </html>
    Diese PHP-Datei kommt in das Verzeichnis /usr/local/edomi/www/visu
    Dann gibt man in eine Textdatei zeilenweise die Daten ein so:
    Muell.txt

    Code:
    12.01.2016<---->Papiertonne
    14.01.2016<---->Restmüll
    Dann ein Visuelement erstellen -> Webseite -> URL: http://192.168.2.200/visu/muellabfuhr.php

    Und schon stehen die Daten in einer Listbox.

    Nur das mit der Schriftart klappt noch nicht, bzw. für mich ists ok.

    Edit: die Farben müsst ihr noch anpassen. Ich habe weisse Schrift auf dunklem Hintergrund.
    Zuletzt geändert von WagoKlemme; 20.02.2016, 14:14.

    Einen Kommentar schreiben:


  • 2Fast4You78
    antwortet
    Daran wäre ich auch interessiert..

    Einen Kommentar schreiben:


  • ggt
    antwortet
    Zitat von timberland
    Danke Christian, funktioniert jetzt.
    Thema Müllabfuhr erledigt...


    @timberland
    Würdest du uns hier mitteilen, wie du das Thema Müllabfuhr in edomi gelöst hast? Das Thema mit deinem Beitrag vom 23.01 wurde geschlossen.

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    quod erat faciendum

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von coliflower Beitrag anzeigen
    Das Ergebnis:
    q.e.f.

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Das Ergebnis:

    2016-02-16 23:03:56 150546 EXEC 26609 iTunes | E10 | Toggle : 1 Ok
    2016-02-16 23:03:56 150681 EXEC 26609 iTunes | E10 | exists : 1 Ok
    2016-02-16 23:03:56 150716 EXEC 26609 iTunes | E10 | LsName : Computer Ok
    2016-02-16 23:03:56 246740 EXEC 26621 iTunes | E10 | Var = 1 Ok
    2016-02-16 23:03:58 632118 EXEC 26621 iTunes | E10 | URL = http://10.0.100.150/%7Edariusz/eDOMI...ce&p1=Computer
    2016-02-16 23:03:58 632939 EXEC 26621 iTunes | E10 | Var = 0 Ok
    2016-02-16 23:03:58 738548 EXEC 26621 iTunes RM | A10 | LS01 exists = 1 Ok
    2016-02-16 23:03:58 738657 EXEC 26621 iTunes RM | A10 | LS01 output = 1 Ok
    2016-02-16 23:03:58 738814 EXEC 26621 iTunes RM | A11 | LS02 exists = 1 Ok
    2016-02-16 23:03:58 738929 EXEC 26621 iTunes RM | A11 | LS02 output = 0 Ok
    2016-02-16 23:03:58 739099 EXEC 26621 iTunes RM | A12 | LS03 exists = 1 Ok
    2016-02-16 23:03:58 739157 EXEC 26621 iTunes RM | A12 | LS03 output = 0 Ok
    2016-02-16 23:03:58 739367 EXEC 26621 iTunes RM | A13 | LS04 exists = 1 Ok
    2016-02-16 23:03:58 739428 EXEC 26621 iTunes RM | A13 | LS04 output = 0 Ok
    2016-02-16 23:03:58 739643 EXEC 26621 iTunes RM | A14 | LS05 exists = 1 Ok
    2016-02-16 23:03:58 739690 EXEC 26621 iTunes RM | A14 | LS05 output = 0 Ok
    2016-02-16 23:03:58 739931 EXEC 26621 iTunes RM | A15 | LS06 exists = 1 Ok
    2016-02-16 23:03:58 739976 EXEC 26621 iTunes RM | A15 | LS06 output = 0 Ok
    2016-02-16 23:03:58 740195 EXEC 26621 iTunes RM | A16 | LS07 exists = 1 Ok
    2016-02-16 23:03:58 740242 EXEC 26621 iTunes RM | A16 | LS07 output = 0 Ok
    2016-02-16 23:03:58 740483 EXEC 26621 iTunes RM | A17 | LS08 exists = 1 Ok
    2016-02-16 23:03:58 740530 EXEC 26621 iTunes RM | A17 | LS08 output = 0 Ok
    2016-02-16 23:03:58 740700 EXEC 26621 iTunes RM | A18 | LS09 exists = 1 Ok
    2016-02-16 23:03:58 740746 EXEC 26621 iTunes RM | A18 | LS09 output = 0 Ok
    2016-02-16 23:03:58 740900 EXEC 26621 iTunes RM | A19 | LS10 exists = 1 Ok
    2016-02-16 23:03:58 741024 EXEC 26621 iTunes RM | A19 | LS10 output = 0 Ok

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von coliflower Beitrag anzeigen

    Einen Kommentar schreiben:


  • coliflower
    antwortet

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von coliflower Beitrag anzeigen
    Dankeschön, das wars !
    Zangengeburt... und ich dachte schon, wir brauchen nen Systemanalytiker

    Einen Kommentar schreiben:

Lädt...
X