DoorPi-Projekt

Begonnen von Syntaxterror, 25 Februar 2016, 18:39:59

Vorheriges Thema - Nächstes Thema

meddie

Hi,

wenn Du ein Spion hast, könntest Du doch die PI Cam direkt an den Spion dran machen, dann hättest Du auch gleich eine Fish-Eye Optik.
Probiere doch mal mit deinem Smartphone, ob das Bild so brauchbar wäre.

Gruß Eddie

Per

Zitat von: Thorsten Pferdekaemper am 29 Dezember 2016, 15:10:53USB-Kamera
Stimmt, USB geht auch, hatte ich auch schon geschaut, aber vergessen aufzuführen. Aber auch dafür habe ich keine "Spion-Variante" gefunden. Es sollte halt nach außen auch wie ein Spion aussehen.

Prof. Dr. Peter Henning

Es gibt für wenig Geld elektronische Türspione (Kamera+Bildschirm). Deren Optik und Befestigung kann man entweder kopieren (z.B. mit einem Bresser Fisheye) oder herausbauen und eine ganz normale PiCam dahinter setzen.

LG

pah

UweH

Zitat von: UweH am 16 Dezember 2016, 18:53:27
Was könnte denn die Anzeige der calllist verhindern? Generiert wird sie ja...

Um mal darauf zurück zu kommen...ich habe jetzt mal testweise FHEM auf einem frischen Linux Mint 18 installiert, keine calllist. Unter Ubuntu funktioniert es auch nicht und bei Debian ist mir die Installation von Test::JSON nicht geglückt. Auf welchem System funktioniert es denn sauber?

Danke und Gruß
Uwe

Prof. Dr. Peter Henning

Das Test:.JSON ärgert mich auch dauernd - weil es das Log zumüllt, ich habe noch keine ordentliche Möglichkeit gefunden, das zu unterdrücken. Werde ich optional machen oder ganz herauswerfen.

Also nochmal zusammengefasst: beim Aufruf der entsprechenden Routine wird die Tabelle generiert. Jetzt testen wir mal, ob sie aufgerufen wird. Also bitte in den nachfolgenden Code (ist in deiner Doorpi-version irgendwo hinter Zeile 12079 eine Zeile mit Log-Ausgabe einfügen.

#######################################################################################
#
# DoorPi_makeTable

# FW_detailFn handler for creating the html output in FHEMWEB
#
#######################################################################################

sub DoorPi_makeTable($$$$){
    my ($FW_wname, $devname, $room, $extPage) = @_;

   Log 1,"DEBUGGING DOORPI: FW_name=$FW_name, devname=$devname, room=$room, extpage=$extpage"

    my $hash = $defs{$devname};
       
    return DoorPi_list($hash)
}


Nächster Test:

Schau dir den Quelltext der Device-Seite voN DoorPi an (im Browser).

Gibt es dort ein Element
<div id="content" data-confirmDelete="1" data-webName="WEB">
?

Gibt es dort ein Element
<div class="fhemWidget" informId="A.Door.Pi" cmd="" arg="doorpicalllist" dev="A.Door.Pi">
(Natürlich statt mit "A.Door.Pi" mit Deinem Devicenamen) ?

LG

pah

UweH

Danke, werde ich heute Nachmittag sofort testen, wenn ich wieder mein FHEM vor mir habe :)

UweH

Zitat von: Prof. Dr. Peter Henning am 06 Januar 2017, 10:31:16
Also bitte in den nachfolgenden Code (ist in deiner Doorpi-version irgendwo hinter Zeile 12079 eine Zeile mit Log-Ausgabe einfügen.
Ich gehe davon aus, dass Du Zeile 1279 in DoorPi.pm meinst...wenn ich den Code dort einfüge, meldet FHEM:

2017.01.06 15:39:24 0: Global symbol "$FW_name" requires explicit package name (did you forget to declare "my $FW_name"?) at ./FHEM/70_DoorPi.pm line 1291.
Global symbol "$extpage" requires explicit package name (did you forget to declare "my $extpage"?) at ./FHEM/70_DoorPi.pm line 1291.
syntax error at ./FHEM/70_DoorPi.pm line 1293, near "my "
Global symbol "$index" requires explicit package name (did you forget to declare "my $index"?) at ./FHEM/70_DoorPi.pm line 1305.
Global symbol "$index" requires explicit package name (did you forget to declare "my $index"?) at ./FHEM/70_DoorPi.pm line 1305.
Global symbol "$ret" requires explicit package name (did you forget to declare "my $ret"?) at ./FHEM/70_DoorPi.pm line 1333.
Global symbol "$old_locale" requires explicit package name (did you forget to declare "my $old_locale"?) at ./FHEM/70_DoorPi.pm line 1334.
Global symbol "$to_json" requires explicit package name (did you forget to declare "my $to_json"?) at ./FHEM/70_DoorPi.pm line 1336.
Global symbol "@json_output" requires explicit package name (did you forget to declare "my @json_output"?) at ./FHEM/70_DoorPi.pm line 1336.
Global symbol "$ret" requires explicit package name (did you forget to declare "my $ret"?) at ./FHEM/70_DoorPi.pm line 1336.
syntax error at ./FHEM/70_DoorPi.pm line 1337, near "}"
./FHEM/70_DoorPi.pm has too many errors.


Zitat
Nächster Test:

Schau dir den Quelltext der Device-Seite voN DoorPi an (im Browser).

Gibt es dort ein Element
<div id="content" data-confirmDelete="1" data-webName="WEB">
?
Ja, ist vorhanden.

Zitat
Gibt es dort ein Element
<div class="fhemWidget" informId="A.Door.Pi" cmd="" arg="doorpicalllist" dev="A.Door.Pi">
(Natürlich statt mit "A.Door.Pi" mit Deinem Devicenamen) ?
Ja, auch das ist vorhanden.

Gruß
Uwe

Prof. Dr. Peter Henning

ZUm eingefügten Code: Äh, ja, sorry, zwei Tippfehler bei den Namen, und das Semikolon am Zeilenende fehlt auch. Hättst Du aber auch sehen können  ;)

sub DoorPi_makeTable($$$$){
    my ($FW_wname, $devname, $room, $extPage) = @_;
   Log 1,"DEBUGGING DOORPI: FW_wname=$FW_wname, devname=$devname, room=$room, extPage=$extPage";


So, und was steht im Quelltext dann NACH dem fhemWidget ?

<td><div class="fhemWidget" informId="A.Door.Pi" cmd="" arg="doorpicalllist" dev="A.Door.Pi">
                <table class="block doorpicalllist">
                    <tr align="center" class="doorpicalllist odd">
                        <td name="state" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Who</td>
                        <td name="timestamp" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Timestamp</td>
                        <td name="number" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Number</td>
                        <td name="result" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Result</td>
                        <td name="duration" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Duration</td>
                        <td name="record" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Recording</td>
                    </tr>


SOLLTE es sein. Achtung: Natürlich nicht so mit sauberen Zeilenumbrüchen wie hier - aber vom Inhalt her gleich.

LG

pah



UweH

Zitat von: Prof. Dr. Peter Henning am 06 Januar 2017, 17:21:26
ZUm eingefügten Code: Äh, ja, sorry, zwei Tippfehler bei den Namen, und das Semikolon am Zeilenende fehlt auch. Hättst Du aber auch sehen können  ;)
Ja...nachdem Du mich drauf gestoßen hast, sehe ich es auch... *schäm*


Zitat
So, und was steht im Quelltext dann NACH dem fhemWidget ?

Genau wie es sein soll:

<div class="fhemWidget" informId="A.Door.Pi" cmd="" arg="doorpicalllist" dev="A.Door.Pi">
<table class="block doorpicalllist"><tr align="center" class="doorpicalllist odd">
<td name="state" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Who</td>
<td name="timestamp" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Timestamp</td>
<td name="number" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Number</td>
<td name="result" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Result</td>
<td name="duration" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Duration</td>
<td name="record" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Recording</td></tr>
</td><td>Calllist empty</table>
</div>


Das Log gibt nun das aus:
2017.01.06 17:43:01 1: DEBUGGING DOORPI: FW_wname=WEB, devname=A.Door.Pi, room=, extPage=




UweH

Nach einem Türklingelevent wird auch schön eine Tabelle mit den Links erzeugt, nur leider nicht angezeigt...
<div class="fhemWidget" informId="A.Door.Pi" cmd="" arg="doorpicalllist" dev="A.Door.Pi">
<table class="block doorpicalllist">
<tr align="center" class="doorpicalllist odd">
<td name="state" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Who</td>
<td name="timestamp" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Timestamp</td>
<td name="number" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Number</td>
<td name="result" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Result</td>
<td name="duration" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Duration</td>
<td name="record" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Recording</td></tr><tr align="center" number="0" class="doorpicalllist even">
<td name="state" class="doorpicalllist" style="padding-left:6px;padding-right:6px;"><a href="http://192.168.178.64:80/2017-01-06_17-49-11.jpg"><img src="http://192.168.178.64:80/2017-01-06_17-49-11.jpg" width="40" height="30"></a></td>
<td name="timestamp" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Fr,  6 Jan 2017 17:49:10</td>
<td name="number" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">**611</td><td name="result" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">ok(3)</td>
<td name="duration" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">8.1</td><td name="record" class="doorpicalllist" style="padding-left:6px;padding-right:6px;"><a href="http://192.168.178.64:80/2017-01-06_17-49-10.wav">2017-01-06_17-49-10.wav</a></td></tr><tr align="center" number="1" class="doorpicalllist odd">
<td name="state" class="doorpicalllist" style="padding-left:6px;padding-right:6px;"><a href="http://192.168.178.64:80/2017-01-06_17-48-42.jpg"><img src="http://192.168.178.64:80/2017-01-06_17-48-42.jpg" width="40" height="30"></a></td><td name="timestamp" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Fr,  6 Jan 2017 17:48:41</td><td name="number" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">**611</td><td name="result" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">nok(5)</td>
<td name="duration" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">12</td><td name="record" class="doorpicalllist" style="padding-left:6px;padding-right:6px;"><a href="http://192.168.178.64:80/2017-01-06_17-48-42.wav">2017-01-06_17-48-42.wav</a></td></tr><tr align="center" number="2" class="doorpicalllist even"><td name="state" class="doorpicalllist" style="padding-left:6px;padding-right:6px;"><a href="http://192.168.178.64:80/2017-01-06_17-42-05.jpg"><img src="http://192.168.178.64:80/2017-01-06_17-42-05.jpg" width="40" height="30"></a></td>
<td name="timestamp" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">Fr,  6 Jan 2017 17:42:04</td>
<td name="number" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">**611</td><td name="result" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">nok(5)</td>
<td name="duration" class="doorpicalllist" style="padding-left:6px;padding-right:6px;">14.6</td><td name="record" class="doorpicalllist" style="padding-left:6px;padding-right:6px;"><a href="http://192.168.178.64:80/2017-01-06_17-42-04.wav">2017-01-06_17-42-04.wav</a>
</td></tr></table></div>



Prof. Dr. Peter Henning

Oha.

Ist denn die Datei /fhem/pgm2/fhemweb_doorpicalllist.js installiert ?

LG

pah

UweH

Ebenfalls Oha.

Jetzt hab ich ja gerade ein richtig schlechtes Gewissen, aber von dieser Datei lese/höre ich gerade zum Ersten Mal. Gefühlt hab ich den Thread, das Wiki und die contrib-Ordner 100x durchgelesen...wo finde ich die? Natürlich habe ich die nicht...  :-[

Prof. Dr. Peter Henning

Sieh an. Die habe ich im contrib-Ordner aus irgendeinem Grund gelöscht - da können wir lange probieren, und ich muss mich ebenfalls entschuldigen :-[

Ich hänge sie hier an, ebenso die neueste Version des Moduls.

LG

pah

UweH

Kein Problem, dafür funktioniert es jetzt  :) :) :)

Danke

UweH

Hallo Mitstreiters,

ich quäle mich immer noch mit dem Arduino...gibt es eigentlich außer pah noch jemandem, dem das Kompilieren des DoorPi-Sketches gelungen ist?
Nach ein paar Sekunden wird erst mal abgebrochen mit:

In file included from C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexHardware.h:18:0,

                 from C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexHardware.cpp:15:

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexHardware.cpp: In function 'bool recvRetNumber(uint32_t*, uint32_t)':

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexConfig.h:37:19: error: 'Serial1' was not declared in this scope

#define nexSerial Serial1

                   ^

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexHardware.cpp:55:5: note: in expansion of macro 'nexSerial'

     nexSerial.setTimeout(timeout);

     ^

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexHardware.cpp: In function 'uint16_t recvRetString(char*, uint16_t, uint32_t)':

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexConfig.h:37:19: error: 'Serial1' was not declared in this scope

#define nexSerial Serial1

                   ^

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexHardware.cpp:114:16: note: in expansion of macro 'nexSerial'

         while (nexSerial.available())

                ^

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexHardware.cpp: In function 'void sendCommand(const char*)':

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexConfig.h:37:19: error: 'Serial1' was not declared in this scope

#define nexSerial Serial1

                   ^

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexHardware.cpp:166:12: note: in expansion of macro 'nexSerial'

     while (nexSerial.available())

            ^

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexConfig.h:37:19: error: 'Serial1' was not declared in this scope

#define nexSerial Serial1

                   ^

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexHardware.cpp:171:5: note: in expansion of macro 'nexSerial'

     nexSerial.print(cmd);

     ^

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexHardware.cpp: In function 'bool recvRetCommandFinished(uint32_t)':

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexConfig.h:37:19: error: 'Serial1' was not declared in this scope

#define nexSerial Serial1

                   ^

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexHardware.cpp:192:5: note: in expansion of macro 'nexSerial'

     nexSerial.setTimeout(timeout);

     ^

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexHardware.cpp: In function 'bool nexInit()':

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexConfig.h:37:19: error: 'Serial1' was not declared in this scope

#define nexSerial Serial1

                   ^

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexHardware.cpp:226:5: note: in expansion of macro 'nexSerial'

     nexSerial.begin(9600);

     ^

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexHardware.cpp: In function 'void nexLoop(NexTouch**)':

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexConfig.h:37:19: error: 'Serial1' was not declared in this scope

#define nexSerial Serial1

                   ^

C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master\NexHardware.cpp:242:12: note: in expansion of macro 'nexSerial'

     while (nexSerial.available() > 0)

            ^


Da ich "define nexSerial Serial1" gesetzt habe und es trotzdem nicht funktioniert, weiß ich an der Stelle erst mal nicht weiter.

Kann mir jemand sagen, wie zum Geier ich vorgehen muss, damit ich den Sketch für einen Nano/Micro kompiliert bekomme?

Gibt es evtl. ein Problem mit einer bestimmten Bibliothek?
Folgende Bibliotheken sind eingebunden:

Bibliothek OneWire im Ordner: C:\Program Files\Arduino\libraries\OneWire (legacy) wird verwendet
Bibliothek SPI im Ordner: C:\Program Files\Arduino\libraries\SPI (legacy) wird verwendet
Bibliothek SD-master im Ordner: C:\Program Files\Arduino\libraries\SD-master (legacy) wird verwendet
Bibliothek SoftwareSerial im Ordner: C:\Program Files\Arduino\libraries\SoftwareSerial (legacy) wird verwendet
Bibliothek ITEADLIB_Arduino_Nextion-master im Ordner: C:\Program Files\Arduino\libraries\ITEADLIB_Arduino_Nextion-master (legacy) wird verwendet


Danke und Gruß
Uwe