auto commit

This commit is contained in:
bangdk 2024-11-27 12:40:07 +09:00
parent 3b3d92fa93
commit b549efc71f
15 changed files with 2307 additions and 518 deletions

View File

@ -58,6 +58,7 @@ export function ApiKeyDialog({ branch, isOpen, onClose }: ApiKeyDialogProps) {
`/api/v1/admin/api-keys/${branch.id}/api-keys`, `/api/v1/admin/api-keys/${branch.id}/api-keys`,
data data
); );
console.log("createApiKeyMutation", response.data);
return response.data; return response.data;
}, },
onSuccess: () => { onSuccess: () => {

View File

@ -2,7 +2,7 @@
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";
import { Badge } from "@/components/ui/badge"; import { Badge } from "@/components/ui/badge";
import { useToast } from "@/hooks/use-toast"; import { useToast } from "@/hooks/use-toast";
import { Key, Copy } from "lucide-react"; import { Key, Copy, Power, Trash2 } from "lucide-react";
import type { Branch } from "@/types/company"; import type { Branch } from "@/types/company";
import { format } from "date-fns"; import { format } from "date-fns";
import { ko } from "date-fns/locale"; import { ko } from "date-fns/locale";
@ -26,7 +26,7 @@ export function ApiKeySection({
const queryClient = useQueryClient(); const queryClient = useQueryClient();
// API 키 상태 토글 mutation // API 키 상태 토글 mutation
const toggleApiKeytatusMutation = useMutation({ const toggleApiKeyStatusMutation = useMutation({
mutationFn: async ({ mutationFn: async ({
apiKeyId, apiKeyId,
isActive, isActive,
@ -64,15 +64,16 @@ export function ApiKeySection({
return ( return (
<div className="space-y-2"> <div className="space-y-2">
<div className="flex items-center gap-2"> <div className="flex items-center justify-between">
<div className="text-sm text-muted-foreground mb-2">API </div>
<Button variant="outline" size="sm" onClick={onCreateClick}> <Button variant="outline" size="sm" onClick={onCreateClick}>
<Key className="w-4 h-4 mr-2" /> API <Key className="w-4 h-4 mr-2" /> API
</Button> </Button>
</div> </div>
{branch.ApiKey && branch.ApiKey.length > 0 ? ( {branch.ApiKeys && branch.ApiKeys.length > 0 ? (
<div className="space-y-2"> <div className="space-y-2">
{branch.ApiKey.map((apiKey) => ( {branch.ApiKeys.map((apiKey) => (
<div <div
key={apiKey.id} key={apiKey.id}
className="flex items-center justify-between bg-gray-50 p-2 rounded" className="flex items-center justify-between bg-gray-50 p-2 rounded"
@ -113,29 +114,42 @@ export function ApiKeySection({
<Button <Button
variant="ghost" variant="ghost"
size="sm" size="sm"
className="h-8 w-8 p-0"
onClick={() => handleCopyApiKey(apiKey.apiKey)} onClick={() => handleCopyApiKey(apiKey.apiKey)}
title="API 키 복사"
> >
<Copy className="w-4 h-4" /> <Copy className="h-4 w-4" />
</Button> </Button>
<Button <Button
variant="outline" variant="ghost"
size="sm" size="sm"
className="h-8 w-8 p-0"
onClick={() => onClick={() =>
toggleApiKeytatusMutation.mutate({ toggleApiKeyStatusMutation.mutate({
apiKeyId: apiKey.id, apiKeyId: apiKey.id,
isActive: !apiKey.isActive, isActive: !apiKey.isActive,
}) })
} }
title={apiKey.isActive ? "비활성화" : "활성화"}
> >
{apiKey.isActive ? "비활성화" : "활성화"} <Power
</Button> className={`h-4 w-4 ${
<Button apiKey.isActive ? "" : "text-muted-foreground"
variant="destructive" }`}
size="sm" />
onClick={() => onDeleteClick(apiKey.id, apiKey.keyName)}
>
</Button> </Button>
{(user?.role === "super_admin" ||
user?.role === "company_admin") && (
<Button
variant="ghost"
size="sm"
className="h-8 w-8 p-0 hover:bg-destructive/10 hover:text-destructive text-destructive"
onClick={() => onDeleteClick(apiKey.id, apiKey.keyName)}
title="삭제"
>
<Trash2 className="h-4 w-4" />
</Button>
)}
</div> </div>
</div> </div>
))} ))}

View File

@ -0,0 +1,109 @@
// src/app/(admin)/company/branches/components/BranchCard.tsx
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import type { Branch, BranchCardProps } from "@/types/company";
import { useAuthStore } from "@/stores/auth";
import { useState } from "react";
import { ApiKeySection } from "./ApiKeySection";
import { ApiKeyDialog } from "./ApiKeyDialog";
import { DeleteApiKeyDialog } from "./DeleteApiKeyDialog";
import { Edit, Trash2 } from "lucide-react";
export function BranchCard({ branches, onEdit, onDelete }: BranchCardProps) {
const { user } = useAuthStore();
const [selectedBranch, setSelectedBranch] = useState<Branch | null>(null);
const [isApiKeyDialogOpen, setIsApiKeyDialogOpen] = useState(false);
const [deleteApiKeyInfo, setDeleteApiKeyInfo] = useState<{
id: string;
name: string;
branchId: string;
} | null>(null);
return (
<>
<div className="grid gap-4 grid-cols-1 md:grid-cols-2 lg:grid-cols-3">
{branches.map((branch) => (
<Card key={branch.id}>
<CardHeader className="pb-2">
<div className="flex justify-between items-center">
<div className="flex items-center gap-2">
<CardTitle className="text-lg">{branch.name}</CardTitle>
<Badge variant={branch.isActive ? "default" : "secondary"}>
{branch.isActive ? "활성" : "비활성"}
</Badge>
</div>
<div className="flex space-x-1">
<Button
variant="ghost"
size="sm"
className="h-8 w-8 p-0 hover:bg-muted"
onClick={() => onEdit(branch)}
>
<Edit className="h-4 w-4" />
</Button>
{(user?.role === "super_admin" ||
user?.role === "company_admin") && (
<Button
variant="ghost"
size="sm"
className="h-8 w-8 p-0 hover:bg-destructive/10 hover:text-destructive text-destructive"
onClick={() => onDelete(branch.id)}
title="삭제"
>
<Trash2 className="h-4 w-4" />
</Button>
)}
</div>
</div>
</CardHeader>
<CardContent>
<div className="space-y-2">
<div className="grid grid-cols-3 gap-1 text-sm">
<div className="text-muted-foreground"></div>
<div className="col-span-2 text-right">{branch.address}</div>
</div>
<div className="grid grid-cols-3 gap-1 text-sm">
<div className="text-muted-foreground"></div>
<div className="col-span-2 text-right">{branch.tel}</div>
</div>
<div className="pt-2">
<ApiKeySection
branch={branch}
onCreateClick={() => {
setSelectedBranch(branch);
setIsApiKeyDialogOpen(true);
}}
onDeleteClick={(apiKeyId, keyName) => {
setDeleteApiKeyInfo({
id: apiKeyId,
name: keyName,
branchId: branch.id,
});
}}
/>
</div>
</div>
</CardContent>
</Card>
))}
</div>
{selectedBranch && (
<ApiKeyDialog
branch={selectedBranch}
isOpen={isApiKeyDialogOpen}
onClose={() => {
setIsApiKeyDialogOpen(false);
setSelectedBranch(null);
}}
/>
)}
<DeleteApiKeyDialog
apiKeyInfo={deleteApiKeyInfo}
onClose={() => setDeleteApiKeyInfo(null)}
/>
</>
);
}

View File

@ -14,21 +14,7 @@ import { Label } from "@/components/ui/label";
import { Input } from "@/components/ui/input"; import { Input } from "@/components/ui/input";
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";
import { Switch } from "@/components/ui/switch"; import { Switch } from "@/components/ui/switch";
import type { Branch } from "@/types/company"; import type { BranchFormData, BranchFormDialogProps } from "@/types/company";
interface BranchFormDialogProps {
mode: "add" | "edit" | null;
branch: Branch | null;
isOpen: boolean;
onClose: () => void;
}
interface BranchFormData {
name: string;
address: string;
tel: string;
isActive: boolean;
}
export function BranchFormDialog({ export function BranchFormDialog({
mode, mode,

View File

@ -1,115 +0,0 @@
// src/app/(admin)/company/branches/components/BranchTable.tsx
import {
Table,
TableBody,
TableCell,
TableHead,
TableHeader,
TableRow,
} from "@/components/ui/table";
import { Button } from "@/components/ui/button";
import { Badge } from "@/components/ui/badge";
import type { Branch } from "@/types/company";
import { ApiKeySection } from "./ApiKeySection";
import { useAuthStore } from "@/stores/auth";
import { useState } from "react";
import { ApiKeyDialog } from "./ApiKeyDialog";
import { DeleteApiKeyDialog } from "./DeleteApiKeyDialog";
interface BranchTableProps {
branches: Branch[];
onEdit: (branch: Branch) => void;
onDelete: (branchId: string) => void;
}
export function BranchTable({ branches, onEdit, onDelete }: BranchTableProps) {
const { user } = useAuthStore();
const [selectedBranch, setSelectedBranch] = useState<Branch | null>(null);
const [isApiKeyDialogOpen, setIsApiKeyDialogOpen] = useState(false);
const [deleteApiKeyInfo, setDeleteApiKeyInfo] = useState<{
id: string;
name: string;
branchId: string;
} | null>(null);
return (
<>
<Table>
<TableHeader>
<TableRow>
<TableHead></TableHead>
<TableHead></TableHead>
<TableHead></TableHead>
<TableHead></TableHead>
<TableHead>API </TableHead>
<TableHead className="text-right"></TableHead>
</TableRow>
</TableHeader>
<TableBody>
{branches.map((branch) => (
<TableRow key={branch.id}>
<TableCell>{branch.name}</TableCell>
<TableCell>{branch.address}</TableCell>
<TableCell>{branch.tel}</TableCell>
<TableCell>
<Badge variant={branch.isActive ? "default" : "secondary"}>
{branch.isActive ? "활성" : "비활성"}
</Badge>
</TableCell>
<TableCell>
<ApiKeySection
branch={branch}
onCreateClick={() => {
setSelectedBranch(branch);
setIsApiKeyDialogOpen(true);
}}
onDeleteClick={(apiKeyId, keyName) => {
setDeleteApiKeyInfo({
id: apiKeyId,
name: keyName,
branchId: branch.id,
});
}}
/>
</TableCell>
<TableCell className="text-right space-x-2">
<Button
variant="outline"
size="sm"
onClick={() => onEdit(branch)}
>
</Button>
{user?.role === "super_admin" && (
<Button
variant="destructive"
size="sm"
onClick={() => onDelete(branch.id)}
>
</Button>
)}
</TableCell>
</TableRow>
))}
</TableBody>
</Table>
{selectedBranch && (
<ApiKeyDialog
branch={selectedBranch}
isOpen={isApiKeyDialogOpen}
onClose={() => {
setIsApiKeyDialogOpen(false);
setSelectedBranch(null);
}}
/>
)}
<DeleteApiKeyDialog
apiKeyInfo={deleteApiKeyInfo}
onClose={() => setDeleteApiKeyInfo(null)}
/>
</>
);
}

View File

@ -4,13 +4,14 @@
import { useQuery } from "@tanstack/react-query"; import { useQuery } from "@tanstack/react-query";
import { useAuthStore } from "@/stores/auth"; import { useAuthStore } from "@/stores/auth";
import { api } from "@/lib/api"; import { api } from "@/lib/api";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; // import { Card, CardContent } from "@/components/ui/card";
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";
import { useState } from "react"; import { useState } from "react";
import { BranchTable } from "./components/BranchTable"; import { BranchCard } from "./components/BranchCard";
import { BranchFormDialog } from "./components/BranchFormDialog"; import { BranchFormDialog } from "./components/BranchFormDialog";
import { DeleteBranchDialog } from "./components/DeleteBranchDialog"; import { DeleteBranchDialog } from "./components/DeleteBranchDialog";
import type { Company, Branch } from "@/types/company"; import type { Company, Branch } from "@/types/company";
import { Plus } from "lucide-react";
export default function CompanyBranchesPage() { export default function CompanyBranchesPage() {
const { token, user } = useAuthStore(); const { token, user } = useAuthStore();
@ -30,7 +31,7 @@ export default function CompanyBranchesPage() {
const { data } = await api.get<Company>( const { data } = await api.get<Company>(
`/api/v1/admin/companies/${user?.companyId}?include=branches.apiKey` `/api/v1/admin/companies/${user?.companyId}?include=branches.apiKey`
); );
console.log(data); // console.log("branches.apiKey", data);
return data; return data;
}, },
enabled: !!token && !!user?.companyId, enabled: !!token && !!user?.companyId,
@ -57,30 +58,25 @@ export default function CompanyBranchesPage() {
if (!company) return <div> .</div>; if (!company) return <div> .</div>;
return ( return (
<div className="container mx-auto py-6 space-y-6"> <div className="container mx-auto py-6">
<Card> <div className="flex justify-between items-center mb-6">
<CardHeader> <h1 className="text-3xl font-bold">/ </h1>
<div className="flex justify-between items-center"> <Button
<CardTitle> </CardTitle> onClick={() => {
<Button setDialogMode("add");
onClick={() => { setEditingBranch(null);
setDialogMode("add"); setIsDialogOpen(true);
setEditingBranch(null); }}
setIsDialogOpen(true); >
}} <Plus className="mr-2 h-4 w-4" />
> /
</Button>
</Button> </div>
</div> <BranchCard
</CardHeader> branches={company.Branches || []}
<CardContent> onEdit={handleEdit}
<BranchTable onDelete={handleDelete}
branches={company.Branches || []} />
onEdit={handleEdit}
onDelete={handleDelete}
/>
</CardContent>
</Card>
{/* Dialogs */} {/* Dialogs */}
<BranchFormDialog <BranchFormDialog

View File

@ -25,7 +25,7 @@ export interface Branch {
companyId: string; companyId: string;
createdAt: string; createdAt: string;
updatedAt: string; updatedAt: string;
ApiKey?: ApiKey[]; ApiKeys?: ApiKey[];
} }
export interface User { export interface User {
@ -58,3 +58,23 @@ export interface ApiKey {
createdAt: string; createdAt: string;
updatedAt: string; updatedAt: string;
} }
export interface BranchFormData {
name: string;
address: string;
tel: string;
isActive: boolean;
}
export interface BranchFormDialogProps {
mode: "add" | "edit" | null;
branch: Branch | null;
isOpen: boolean;
onClose: () => void;
}
export interface BranchCardProps {
branches: Branch[];
onEdit: (branch: Branch) => void;
onDelete: (branchId: string) => void;
}

Binary file not shown.

View File

@ -1,2 +1,2 @@
fems:$7$101$Ach+k+7cDgannVqR$NmlplxX4UsCGcF4Z6zm+fGW+J4zGQO8n6qNLcXGVE8fxRTT9vpVrmYRRIA6uOOI6rrHzEn6MKNtxQRCZ1PpyfA== fems:$7$101$DReOc0qh4fHrvOsM$Jfh0DIt0Llwq30My4YnsIRnlW7BUb/kDH2zqKnYiUBuOpAIntmezbF1MYTAYJ1UOo032jQyV9IUGh+oMiHMjLg==
nodered_user:$7$101$YtBaU4/sDUXIBCL5$G3aOkSmnpo2xTjtgPYo86YszNeYQlBhlnENG8AoYG/1zCQuVf8K318R7J9L6GZno6YjQ9BgSe7aNI9rDQPshoQ== nodered_user:$7$101$539VdW5cs9LGnCl9$dCGBu0MZgktD2UOcbJmHZBsMoy8P9lk1zjLDl5yyzj2AV4uPh+8/1GVd/E+z+Sq4ssNIpzVT3P47yM4WJ8gpSA==

File diff suppressed because it is too large Load Diff

View File

@ -14,6 +14,11 @@
"date": 1732570927269, "date": 1732570927269,
"name": "/app/logs/error/error-2024-11-26.log", "name": "/app/logs/error/error-2024-11-26.log",
"hash": "38556fbbe3e1d2d094f6be5fddae74f769846d7424704a8ad290acc03c5baa12" "hash": "38556fbbe3e1d2d094f6be5fddae74f769846d7424704a8ad290acc03c5baa12"
},
{
"date": 1732667260450,
"name": "/app/logs/error/error-2024-11-27.log",
"hash": "aaac408d9061c832f7dc73f8e3c456e371d23d73aed57068d6e215532ff4bac5"
} }
], ],
"hashType": "sha256" "hashType": "sha256"

View File

@ -14,6 +14,11 @@
"date": 1732548728076, "date": 1732548728076,
"name": "/app/logs/info/info-2024-11-26.log", "name": "/app/logs/info/info-2024-11-26.log",
"hash": "fd8c633eeb46930b2788b53ce7ebae1dd2b427ddb03b46ee39a86207d7172f2e" "hash": "fd8c633eeb46930b2788b53ce7ebae1dd2b427ddb03b46ee39a86207d7172f2e"
},
{
"date": 1732633663556,
"name": "/app/logs/info/info-2024-11-27.log",
"hash": "210aa82c16bb88b4a750a458183869412cff9f0967c8c2c898d021e84b1bcb2e"
} }
], ],
"hashType": "sha256" "hashType": "sha256"

View File

@ -1,171 +0,0 @@
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 00:32:08"}
{"environment":"development","level":"info","message":"Info log rotated","newFilename":"/app/logs/info/info-2024-11-26.log","oldFilename":"/app/logs/info/info-2024-11-25.log","service":"fems-edge","timestamp":"2024-11-26 00:32:08"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 00:32:13"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 00:32:13"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 00:32:13"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 01:03:21"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 01:03:26"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 01:03:26"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 01:03:26"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 01:49:58"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 01:50:03"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 01:50:03"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 01:50:03"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 02:34:19"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 02:34:24"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 02:34:24"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 02:34:24"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 03:52:04"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 03:52:09"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 03:52:10"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 03:52:10"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 03:53:41"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 03:53:46"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 03:53:46"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 03:53:46"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 04:10:27"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 04:10:32"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 04:10:32"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 04:10:32"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 05:37:04"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 05:37:09"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 05:37:09"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 05:37:09"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 06:05:35"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 06:05:40"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 06:05:40"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 06:05:40"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 06:36:11"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 06:36:16"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 06:36:16"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 06:36:16"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 06:38:18"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 09:42:04"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 09:42:09"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 09:42:09"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 09:42:09"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 09:59:43"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 09:59:48"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 09:59:48"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 09:59:48"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 11:07:14"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 11:07:19"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 11:07:19"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 11:07:19"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 12:23:28"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 12:23:33"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 12:23:33"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 12:23:33"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 14:40:31"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 14:40:36"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 14:40:36"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 14:40:36"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 15:07:11"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 15:07:16"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 15:07:16"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 15:07:16"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 15:09:55"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 15:10:00"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 15:10:00"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 15:10:00"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 15:14:44"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 15:14:44"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 15:14:44"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_39","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 15:14:44"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 15:14:45"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 15:14:45"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 15:14:45"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 15:33:35"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 15:33:35"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 15:33:35"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 15:33:36"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 15:33:36"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 15:33:36"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 15:33:36"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 16:07:38"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 16:16:50"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.4:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 16:24:33"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.3:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 19:44:10"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 19:44:12"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 19:44:12"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 19:44:12"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 19:44:13"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 19:44:13"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 19:44:13"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 19:44:13"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 19:47:49"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 19:56:04"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_39","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 20:36:15"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 20:36:20"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 20:36:20"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 20:36:20"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 20:41:28"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 20:41:33"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 20:41:33"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 20:41:33"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 21:11:33"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 21:11:38"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 21:11:38"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 21:11:38"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 21:23:52"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 21:23:57"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 21:23:57"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 21:23:57"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 22:55:24"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 22:55:26"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 22:55:26"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 22:55:26"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_39","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 22:55:26"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 22:55:27"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 22:55:27"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 22:55:27"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 23:28:33"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}

View File

@ -14,6 +14,11 @@
"date": 1732548728182, "date": 1732548728182,
"name": "/app/logs/system/system-2024-11-26.log", "name": "/app/logs/system/system-2024-11-26.log",
"hash": "b8f3a25c82337b2bb870ab9e4705680a040528cdc876977febe22f71cd99e359" "hash": "b8f3a25c82337b2bb870ab9e4705680a040528cdc876977febe22f71cd99e359"
},
{
"date": 1732633663573,
"name": "/app/logs/system/system-2024-11-27.log",
"hash": "664d6884001d7c6bf73c07086d76b456c8c65e4bdebe6679895cae0ce18f72e3"
} }
], ],
"hashType": "sha256" "hashType": "sha256"

View File

@ -1,171 +0,0 @@
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 00:32:08"}
{"environment":"development","level":"info","message":"Info log rotated","newFilename":"/app/logs/info/info-2024-11-26.log","oldFilename":"/app/logs/info/info-2024-11-25.log","service":"fems-edge","timestamp":"2024-11-26 00:32:08"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 00:32:13"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 00:32:13"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 00:32:13"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 01:03:21"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 01:03:26"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 01:03:26"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 01:03:26"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 01:49:58"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 01:50:03"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 01:50:03"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 01:50:03"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 02:34:19"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 02:34:24"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 02:34:24"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 02:34:24"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 03:52:04"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 03:52:09"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 03:52:10"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 03:52:10"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 03:53:41"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 03:53:46"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 03:53:46"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 03:53:46"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 04:10:27"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 04:10:32"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 04:10:32"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 04:10:32"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 05:37:04"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 05:37:09"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 05:37:09"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 05:37:09"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 06:05:35"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 06:05:40"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 06:05:40"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 06:05:40"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 06:36:11"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 06:36:16"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 06:36:16"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 06:36:16"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 06:38:18"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 06:42:07"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 09:42:04"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 09:42:09"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 09:42:09"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 09:42:09"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 09:59:43"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 09:59:48"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 09:59:48"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 09:59:48"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 11:07:14"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 11:07:19"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 11:07:19"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 11:07:19"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 12:23:28"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 12:23:33"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 12:23:33"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 12:23:33"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 14:40:31"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 14:40:36"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 14:40:36"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 14:40:36"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 15:07:11"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 15:07:16"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 15:07:16"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 15:07:16"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 15:09:55"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 15:10:00"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 15:10:00"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 15:10:00"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 15:14:44"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 15:14:44"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 15:14:44"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_39","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 15:14:44"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 15:14:45"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 15:14:45"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 15:14:45"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 15:33:35"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 15:33:35"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 15:33:35"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 15:33:36"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 15:33:36"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 15:33:36"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 15:33:36"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 16:07:38"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 16:07:40"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 16:16:50"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 16:16:52"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.4:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 16:24:33"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 16:24:35"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.3:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 19:44:10"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 19:44:12"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 19:44:12"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 19:44:12"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 19:44:13"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 19:44:13"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 19:44:13"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 19:44:13"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 19:47:49"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 19:47:51"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 19:56:04"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_39","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 19:56:06"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 20:36:15"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 20:36:20"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 20:36:20"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 20:36:20"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 20:41:28"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 20:41:33"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 20:41:33"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 20:41:33"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 21:11:33"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 21:11:38"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 21:11:38"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 21:11:38"}
{"environment":"development","level":"warn","message":"MQTT client is offline","service":"fems-edge","timestamp":"2024-11-26 21:23:52"}
{"environment":"development","level":"warn","message":"Reconnecting to MQTT broker (attempt 1)","service":"fems-edge","timestamp":"2024-11-26 21:23:57"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 21:23:57"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 21:23:57"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 22:55:24"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 22:55:26"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 22:55:26"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 22:55:26"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_39","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 22:55:26"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 22:55:27"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 22:55:27"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 22:55:27"}
{"environment":"development","error":"connect ECONNREFUSED 172.19.0.2:5433","level":"warn","message":"Failed to connect to services, attempt 1/30","service":"fems-edge","services":"{\"timescaledb\":false,\"redis\":false}","timestamp":"2024-11-26 23:28:33"}
{"environment":"development","level":"info","message":"Successfully connected to TimescaleDB","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"Successfully connected to Redis","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"All services are connected","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"broker":"mqtt://fems-mqtt:1883","clientId":"fems_realtime_40","environment":"development","level":"info","message":"Connecting to MQTT broker...","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"Connected to MQTT broker","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"Realtime backend server running on port 3004","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}
{"environment":"development","level":"info","message":"Subscribed to data/+/+/+/#","service":"fems-edge","timestamp":"2024-11-26 23:28:36"}